Guest User

Untitled

a guest
Dec 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 49.35 KB | None | 0 0
  1. package com.henceforth.actafun.activities;
  2.  
  3. import android.content.Intent;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.support.annotation.RequiresApi;
  7. import android.support.design.widget.AppBarLayout;
  8. import android.support.design.widget.TabLayout;
  9. import android.support.v4.app.Fragment;
  10. import android.support.v4.app.FragmentManager;
  11. import android.support.v4.app.FragmentPagerAdapter;
  12. import android.support.v4.view.ViewPager;
  13. import android.support.v4.widget.NestedScrollView;
  14. import android.support.v7.app.AppCompatActivity;
  15. import android.support.v7.widget.LinearLayoutManager;
  16. import android.support.v7.widget.RecyclerView;
  17. import android.support.v7.widget.Toolbar;
  18. import android.util.Log;
  19. import android.view.View;
  20. import android.view.ViewGroup;
  21. import android.widget.Button;
  22. import android.widget.ImageView;
  23. import android.widget.LinearLayout;
  24. import android.widget.RatingBar;
  25. import android.widget.RelativeLayout;
  26. import android.widget.TextView;
  27.  
  28. import com.henceforth.actafun.CustomeCalender.MCalendarView;
  29. import com.henceforth.actafun.R;
  30. import com.henceforth.actafun.adapters.SuggestedActivitiesAdapter;
  31. import com.henceforth.actafun.adapters.UpcomingEvantAdapter;
  32. import com.henceforth.actafun.dialog_fragments.ChooseFragment;
  33. import com.henceforth.actafun.dialog_fragments.ReadReviewsFragment;
  34. import com.henceforth.actafun.dialog_fragments.SignInFragment;
  35. import com.henceforth.actafun.fragment.CatergoryImagesFragment;
  36. import com.henceforth.actafun.pojo.ActivityAvailability;
  37. import com.henceforth.actafun.pojo.ActivityDetailWeb;
  38. import com.henceforth.actafun.pojo.ActivityDetails;
  39. import com.henceforth.actafun.pojo.ActivitySuggestion;
  40. import com.henceforth.actafun.pojo.GetMessage;
  41. import com.henceforth.actafun.pojo.Review;
  42. import com.henceforth.actafun.utils.ApplicationGlobal;
  43. import com.henceforth.actafun.utils.CommonMethods;
  44. import com.henceforth.actafun.utils.GlideApp;
  45. import com.henceforth.actafun.utils.RestClient;
  46. import com.henceforth.actafun.utils.VerticalSpaceItemDecoration;
  47.  
  48. import java.text.ParseException;
  49. import java.text.SimpleDateFormat;
  50. import java.util.ArrayList;
  51. import java.util.Date;
  52. import java.util.List;
  53.  
  54. import butterknife.BindView;
  55. import butterknife.ButterKnife;
  56. import butterknife.OnClick;
  57. import io.branch.referral.Branch;
  58. import io.branch.referral.BranchError;
  59. import retrofit2.Call;
  60. import retrofit2.Callback;
  61. import retrofit2.Response;
  62. import sun.bob.mcalendarview.MarkStyle;
  63. import sun.bob.mcalendarview.listeners.OnDateClickListener;
  64. import sun.bob.mcalendarview.vo.DateData;
  65.  
  66. public class ActivityDetailActivity extends AppCompatActivity {
  67.  
  68. @BindView(R.id.viewPager)
  69. ViewPager viewPager;
  70. @BindView(R.id.scrollView)
  71. NestedScrollView scrollView;
  72. @BindView(R.id.tvTitle)
  73. TextView tvTitle;
  74. @BindView(R.id.ivShare)
  75. ImageView ivShare;
  76. @BindView(R.id.ivLike)
  77. ImageView ivLike;
  78. @BindView(R.id.toolbar)
  79. Toolbar toolbar;
  80. @BindView(R.id.appBar)
  81. AppBarLayout appBar;
  82. @BindView(R.id.tabLines)
  83. TabLayout tabLines;
  84. @BindView(R.id.tvCategoryTitle)
  85. TextView tvCategoryTitle;
  86. @BindView(R.id.rbCatrgoryRating)
  87. RatingBar rbCatrgoryRating;
  88. @BindView(R.id.tvTotalReviews)
  89. TextView tvTotalReviews;
  90. @BindView(R.id.tvCategoryLocation)
  91. TextView tvCategoryLocation;
  92. @BindView(R.id.tvDifficulty)
  93. TextView tvDifficulty;
  94. @BindView(R.id.tvShowDifficulty)
  95. TextView tvShowDifficulty;
  96. @BindView(R.id.tvGroupSize)
  97. TextView tvGroupSize;
  98. @BindView(R.id.tvShowGroupSize)
  99. TextView tvShowGroupSize;
  100. @BindView(R.id.tvOverView)
  101. TextView tvOverView;
  102. @BindView(R.id.tvShowOverView)
  103. TextView tvShowOverView;
  104. @BindView(R.id.dividerOne)
  105. View dividerOne;
  106. @BindView(R.id.tvExpect)
  107. TextView tvExpect;
  108. @BindView(R.id.tvShowExpect)
  109. TextView tvShowExpect;
  110. @BindView(R.id.dividerTwo)
  111. View dividerTwo;
  112. @BindView(R.id.tvBring)
  113. TextView tvBring;
  114. @BindView(R.id.tvShowBring)
  115. TextView tvShowBring;
  116. @BindView(R.id.map)
  117. ImageView map;
  118. @BindView(R.id.mapView)
  119. RelativeLayout mapView;
  120. @BindView(R.id.tvUpcomingAvailability)
  121. TextView tvUpcomingAvailability;
  122. @BindView(R.id.calender)
  123. MCalendarView calender;
  124. @BindView(R.id.tvReview)
  125. TextView tvReview;
  126. @BindView(R.id.ivProfilePic)
  127. ImageView ivProfilePic;
  128. @BindView(R.id.tvName)
  129. TextView tvName;
  130. @BindView(R.id.rbRating)
  131. RatingBar rbRating;
  132. @BindView(R.id.tvViews)
  133. TextView tvViews;
  134. @BindView(R.id.dividerFour)
  135. View dividerFour;
  136. @BindView(R.id.seeReview)
  137. RelativeLayout seeReview;
  138. @BindView(R.id.tvReadReview)
  139. TextView tvReadReview;
  140. @BindView(R.id.dividerFive)
  141. View dividerFive;
  142. @BindView(R.id.tvDiifferentCategory)
  143. TextView tvDiifferentCategory;
  144. @BindView(R.id.rvCategoriesList)
  145. RecyclerView rvCategoriesList;
  146. @BindView(R.id.tvCategoryPrice)
  147. TextView tvCategoryPrice;
  148. @BindView(R.id.fixLayout)
  149. RelativeLayout fixLayout;
  150. public static ActivityDetails activityDetails;
  151. @BindView(R.id.ivProfilePic1)
  152. ImageView ivProfilePic1;
  153. @BindView(R.id.tvName1)
  154. TextView tvName1;
  155. @BindView(R.id.rbRating1)
  156. RatingBar rbRating1;
  157. @BindView(R.id.rlView2)
  158. RelativeLayout rlView2;
  159. @BindView(R.id.tvViews1)
  160. TextView tvViews1;
  161. @BindView(R.id.btnBook)
  162. Button btnBook;
  163. private Boolean gotApiResponce = false;
  164. private List<ActivitySuggestion> activitySuggestions = new ArrayList<>();
  165. public static List<Review> reviewsList = new ArrayList<>();
  166. private List<ActivityAvailability> activityAvailabilities = new ArrayList<>();
  167. private SuggestedActivitiesAdapter mSuggestedActivitiesAdapter;
  168. private UpcomingEvantAdapter mUpcomingEvantAdapter;
  169. CategoryInageAdapter categoryInageAdapter;
  170.  
  171. @Override
  172. protected void onCreate(Bundle savedInstanceState) {
  173. super.onCreate(savedInstanceState);
  174. setContentView(R.layout.activity_detail);
  175. ButterKnife.bind(this);
  176.  
  177. activityDetails = new ActivityDetails();
  178.  
  179. if (Build.VERSION.SDK_INT >= 24) {
  180. calender.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1200));
  181. }
  182. final int activityId = getIntent().getIntExtra("activityId", -1);
  183. RestClient.getClient().activityDetails(activityId, CommonMethods.getTimeZone()).enqueue(
  184. new Callback<ActivityDetailWeb>() {
  185. @Override
  186. public void onResponse(Call<ActivityDetailWeb> call, Response<ActivityDetailWeb> response) {
  187. try {
  188. if (response.isSuccessful() && response.body() != null) {
  189. activityDetails = response.body().getData();
  190. gotApiResponce = true;
  191.  
  192. if (activityDetails.getMin_price() != null)
  193. tvCategoryPrice.setText("€" + activityDetails.getMin_price());
  194. else
  195. tvCategoryPrice.setText("Free Activity");
  196.  
  197. //ViewPager and Tab Layout
  198. categoryInageAdapter = new CategoryInageAdapter(getSupportFragmentManager(),
  199. activityDetails.getGallery(), activityDetails.getImage(),
  200. activityDetails.getYoutube_link());
  201. viewPager.setAdapter(categoryInageAdapter);
  202. tabLines.setupWithViewPager(viewPager);
  203. for (int i = 0; i < tabLines.getTabCount(); i++) {
  204. tabLines.getTabAt(i).setCustomView(R.layout.tab_view_layout);
  205. }
  206. //other information
  207. wishList();
  208.  
  209. tvCategoryTitle.setText(activityDetails.getTitle());
  210.  
  211. tvCategoryLocation.setText(activityDetails.getCity() + " " +
  212. activityDetails.getCountry());
  213.  
  214. tvShowDifficulty.setText(" " + activityDetails.getDifficulty());
  215. tvShowGroupSize.setText(" " + activityDetails.getMax_group_size().toString());
  216. tvTotalReviews.setText(String.valueOf(getReviewsCount()) + " Reviews");
  217. if (activityDetails.getRating() == null) {
  218. rbCatrgoryRating.setRating((float) 0);
  219. } else {
  220. rbCatrgoryRating.setRating(Float.parseFloat(activityDetails.getRating()));
  221. }
  222. tvShowOverView.setText(activityDetails.getOverview());
  223. tvShowExpect.setText(activityDetails.getWhat_to_expect());
  224. tvShowBring.setText(activityDetails.getWhat_to_bring());
  225.  
  226. calender.getMarkedDates().removeAdd();
  227. for (int i = 0; i < activityDetails.getActivity_availabilities().size(); i++) {
  228. String[] split = activityDetails.getActivity_availabilities().get(i)
  229. .getDate().split("-");
  230. if (i == 0)
  231. calender.travelTo(new DateData(Integer.parseInt(split[0]),
  232. Integer.parseInt(split[1]), Integer.parseInt(split[2])));
  233. calender.markDate(new DateData(Integer.parseInt(split[0]),
  234. Integer.parseInt(split[1]), Integer.parseInt(split[2])).setMarkStyle(new
  235. MarkStyle(MarkStyle.BACKGROUND, getResources().getColor(R.color.greenColor))));
  236. }
  237.  
  238. if (activityDetails.getReviews().size() == 0 || getReviewsCount() == 0) {
  239. seeReview.setVisibility(View.GONE);
  240. tvReadReview.setText("No Reviews");
  241.  
  242. } else {
  243. if (getReviewsCount() <= 2) {
  244. tvReadReview.setVisibility(View.GONE);
  245. dividerFive.setVisibility(View.GONE);
  246. } else {
  247. tvReadReview.setText(" Read all " + String.valueOf(getReviewsCount()) + " reviews");
  248. tvReadReview.setOnClickListener(new View.OnClickListener() {
  249. @Override
  250. public void onClick(View view) {
  251. new ReadReviewsFragment().show(getSupportFragmentManager(), "Read Reviews");
  252. }
  253. });
  254. }
  255.  
  256. if (reviewsList.size() >= 2)
  257. rlView2.setVisibility(View.VISIBLE);
  258.  
  259. if (reviewsList.get(0).getUser().getLast_name() != null)
  260. tvName.setText(reviewsList.get(0).getUser().getFirst_name() +
  261. " " + reviewsList.get(0).getUser().getLast_name());
  262. else
  263. tvName.setText(reviewsList.get(0).getUser().getFirst_name());
  264. if (!reviewsList.get(0).getUser().getImage().equals("") &&
  265. reviewsList.get(0).getUser().getImage() != null)
  266. GlideApp.with(ActivityDetailActivity.this).load(reviewsList.get(0).
  267. getUser().getImage()).circleCrop().placeholder(R.drawable.image_placeholder)
  268. .into(ivProfilePic);
  269. tvViews.setText(reviewsList.get(0).getReview());
  270. if (reviewsList.get(0).getRating() == null)
  271. rbRating.setRating((float) 0);
  272. else
  273. rbRating.setRating(Float.parseFloat(reviewsList.get(0).getRating()));
  274.  
  275. if (reviewsList.size() > 1) {
  276. if (reviewsList.get(1).getUser().getLast_name() != null)
  277. tvName1.setText(reviewsList.get(1).getUser().getFirst_name() +
  278. " " + reviewsList.get(1).getUser().getLast_name());
  279. else
  280. tvName1.setText(reviewsList.get(1).getUser().getFirst_name());
  281. if (!reviewsList.get(1).getUser().getImage().equals("") &&
  282. reviewsList.get(1).getUser().getImage() != null)
  283. GlideApp.with(ActivityDetailActivity.this).load(reviewsList.get(1).
  284. getUser().getImage()).circleCrop().placeholder(R.drawable.image_placeholder)
  285. .into(ivProfilePic1);
  286. tvViews1.setText(reviewsList.get(1).getReview());
  287. if (reviewsList.get(1).getRating() == null)
  288. rbRating1.setRating((float) 0);
  289. else
  290. rbRating1.setRating(Float.parseFloat(reviewsList.get(1).getRating()));
  291.  
  292. }
  293. }
  294.  
  295. //Activity Suggestion and Event Avalibale
  296. activitySuggestions.addAll(activityDetails.getActivity_suggestions());
  297. if (activitySuggestions.size() == 0)
  298. tvDiifferentCategory.setVisibility(View.GONE);
  299. mSuggestedActivitiesAdapter.notifyDataSetChanged();
  300.  
  301.  
  302. activityAvailabilities.addAll(activityDetails.getActivity_availabilities());
  303. mUpcomingEvantAdapter.notifyDataSetChanged();
  304. if (activityDetails.getLat() != null && activityDetails.getLng() != null) {
  305.  
  306. String url = "http://maps.google.com/maps/api/staticmap?center="
  307. + activityDetails.getLat() + "," + activityDetails.getLng()
  308. + "&zoom=11&size=600x600&sensor=false&key=AIzaSyAFMNC8LfGF-ff7u1xuWWzGn8vndJFdtwg";
  309. GlideApp.with(ActivityDetailActivity.this).load(url).centerCrop().into(map);
  310. }
  311.  
  312. } else {
  313. CommonMethods.showErrorMessage(ActivityDetailActivity.this, response.errorBody());
  314. }
  315. } catch (Exception e) {
  316. e.printStackTrace();
  317. }
  318. }
  319.  
  320. @Override
  321. public void onFailure(Call<ActivityDetailWeb> call, Throwable t) {
  322. CommonMethods.showToast(ActivityDetailActivity.this, t.getMessage());
  323. }
  324. });
  325.  
  326. //Toolbar
  327. toolbar.setNavigationIcon(R.drawable.ic_back_white);
  328. toolbar.setNavigationOnClickListener(new View.OnClickListener() {
  329. @Override
  330. public void onClick(View view) {
  331. finish();
  332. }
  333. });
  334. appBar.bringToFront();
  335. appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
  336. @Override
  337. public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
  338. if (Math.abs(verticalOffset) == appBarLayout.getTotalScrollRange()) {
  339. tvTitle.setVisibility(View.VISIBLE);
  340. tvTitle.setText(activityDetails.getTitle());
  341. } else if (verticalOffset == 0) {
  342. tvTitle.setVisibility(View.GONE);
  343. } else {
  344. tvTitle.setVisibility(View.GONE);
  345. }
  346.  
  347. }
  348. });
  349.  
  350. mSuggestedActivitiesAdapter = new SuggestedActivitiesAdapter(ActivityDetailActivity.this,
  351. activitySuggestions);
  352. mUpcomingEvantAdapter = new UpcomingEvantAdapter(ActivityDetailActivity.this, activityAvailabilities);
  353.  
  354. rvCategoriesList.setLayoutManager(new LinearLayoutManager(ActivityDetailActivity.this,
  355. LinearLayoutManager.HORIZONTAL, false));
  356. rvCategoriesList.setAdapter(mSuggestedActivitiesAdapter);
  357. rvCategoriesList.addItemDecoration(new VerticalSpaceItemDecoration(16));
  358.  
  359. calender.setOnDateClickListener(new OnDateClickListener() {
  360. @Override
  361. public void onDateClick(View view, DateData date) {
  362. for (int i = 0; i < activityDetails.getActivity_availabilities().size(); i++) {
  363. String dateTime = "";
  364. Log.d("dates: ", activityDetails.getActivity_availabilities().get(i).getDate());
  365. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  366. try {
  367. Date date1 = simpleDateFormat.parse(date.getYear() + "-" + date.getMonth()
  368. + "-" + date.getDay());
  369. dateTime = simpleDateFormat.format(date1);
  370. } catch (ParseException e) {
  371. e.printStackTrace();
  372. }
  373. if (dateTime.equals(activityDetails.getActivity_availabilities().get(i).getDate())) {
  374. ChooseFragment chooseFragment = new ChooseFragment();
  375. chooseFragment.getDta(activityDetails.getActivity_availabilities(), dateTime);
  376. chooseFragment.show(getSupportFragmentManager(), "ChooseDate");
  377. return;
  378. }
  379. }
  380. }
  381. });
  382. }
  383.  
  384. private int getReviewsCount() {
  385. int j = 0;
  386. reviewsList.clear();
  387. for (int i = 0; i < activityDetails.getReviews().size(); i++) {
  388. if (activityDetails.getReviews().get(i).getReview_type() == 1) {
  389. j = j + 1;
  390. reviewsList.add(activityDetails.getReviews().get(i));
  391. }
  392. }
  393. return j;
  394. }
  395.  
  396. public void wishList() {
  397. if (this.activityDetails.getIs_wished().equals("0")) {
  398. ivLike.setImageResource(R.drawable.ic_like_white);
  399. } else {
  400. ivLike.setImageResource(R.drawable.ic_herat_fill);
  401. }
  402. }
  403.  
  404. @RequiresApi(api = Build.VERSION_CODES.N)
  405. @OnClick({R.id.ivShare, R.id.ivLike, R.id.btnBook})
  406. public void onViewClicked(View view) {
  407. switch (view.getId()) {
  408. case R.id.btnBook:
  409. appBar.setExpanded(false);
  410. // final View child = ((ViewGroup)scrollView.getChildAt(0)).getChildAt(19);
  411. // final int distanceInPixels = Math.abs((int)child.getY());
  412. // scrollView.smoothScrollTo(0, distanceInPixels);
  413. calender.getParent().requestChildFocus(calender, calender);
  414. break;
  415. case R.id.ivShare:
  416. if (gotApiResponce) {
  417. CommonMethods.branchUniversalObject(activityDetails.getId(), activityDetails.getTitle(), activityDetails.getImage())
  418. .generateShortUrl(ActivityDetailActivity.this,
  419. CommonMethods.linkProperties().addControlParameter("$fallback_url",
  420. "http://18.220.227.235:8082/#!/activity-details/" + activityDetails.getId())
  421. , new Branch.BranchLinkCreateListener() {
  422. @Override
  423. public void onLinkCreate(String url, BranchError error) {
  424. try {
  425. String sAux = null;
  426. sAux = "\n" + "Check out this activity on Actafun\n\n" + url;
  427. Intent i = new Intent(Intent.ACTION_SEND);
  428. i.setType("text/plain");
  429. i.putExtra(Intent.EXTRA_SUBJECT, "My application name");
  430. i.putExtra(Intent.EXTRA_TEXT, sAux);
  431. startActivity(Intent.createChooser(i, "choose one"));
  432. } catch (Exception e) {
  433. e.getMessage();
  434. }
  435. }
  436. });
  437. }
  438. break;
  439. case R.id.ivLike:
  440. if (ApplicationGlobal.profile != null) {
  441. if (gotApiResponce) {
  442. if (this.activityDetails.getIs_wished().equals("0")) {
  443. this.activityDetails.setIs_wished("34");
  444. } else {
  445. this.activityDetails.setIs_wished("0");
  446. }
  447. RestClient.getClient().wishList(activityDetails.getService_provider_id().toString(),
  448. activityDetails.getId().toString()).enqueue(
  449. new Callback<GetMessage>() {
  450. @Override
  451. public void onResponse(Call<GetMessage> call, Response<GetMessage> response) {
  452. try {
  453. if (response.isSuccessful() && response.body() != null) {
  454. CommonMethods.showToast(ActivityDetailActivity.this, response.body().getData());
  455. } else {
  456. CommonMethods.showErrorMessage(ActivityDetailActivity.this, response.errorBody());
  457. }
  458. } catch (Exception e) {
  459.  
  460. }
  461. }
  462.  
  463. @Override
  464. public void onFailure(Call<GetMessage> call, Throwable t) {
  465. }
  466. });
  467. wishList();
  468. Intent intent = new Intent("Liked");
  469. intent.putExtra("position", activityDetails.getId());
  470. if (activityDetails.getIs_wished().equals("0"))
  471. intent.putExtra("liked", false);
  472. sendBroadcast(intent);
  473. }
  474. } else {
  475. SignInFragment signInFragment = new SignInFragment();
  476. Bundle bundle = new Bundle();
  477. bundle.putString("login", "guest");
  478. signInFragment.setArguments(bundle);
  479. signInFragment.show(getSupportFragmentManager(), "Login Fragment");
  480. }
  481. break;
  482. }
  483. }
  484.  
  485. private class CategoryInageAdapter extends FragmentPagerAdapter {
  486.  
  487. List<String> gallery;
  488. String image, link;
  489.  
  490. CategoryInageAdapter(FragmentManager fm, ArrayList<String> gallery, String image, String link) {
  491. super(fm);
  492. this.gallery = gallery;
  493. this.image = image;
  494. this.link = link;
  495. }
  496.  
  497. @Override
  498. public Fragment getItem(int position) {
  499. CatergoryImagesFragment catergoryImagesFragment = new CatergoryImagesFragment();
  500. Bundle bundle = new Bundle();
  501. if (!image.equals("")) {
  502. if (!link.equals("")) {
  503. if (position == 0) {
  504. bundle.putString("video", link);
  505. } else if (position == 1) {
  506. bundle.putString("image", image);
  507. } else {
  508. bundle.putString("image", gallery.get(position - 2));
  509. }
  510. } else {
  511. if (position == 0) {
  512. bundle.putString("image", image);
  513. } else {
  514. bundle.putString("image", gallery.get(position - 1));
  515. }
  516. }
  517. }
  518. bundle.putInt("position", position);
  519. catergoryImagesFragment.setArguments(bundle);
  520. return catergoryImagesFragment;
  521. }
  522.  
  523. @Override
  524. public int getCount() {
  525. Log.i("gallerySize", String.valueOf(gallery.size()));
  526. if (link.equals(""))
  527. return (gallery.size() + 1);
  528. else
  529. return (gallery.size() + 2);
  530. }
  531.  
  532. }
  533. }
  534.  
  535.  
  536.  
  537.  
  538. <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
  539. xmlns:app="http://schemas.android.com/apk/res-auto"
  540. android:layout_width="match_parent"
  541. android:layout_height="match_parent"
  542. xmlns:tools="http://schemas.android.com/tools"
  543. android:fitsSystemWindows="true">
  544.  
  545. <android.support.design.widget.AppBarLayout
  546. android:id="@+id/appBar"
  547. android:layout_width="match_parent"
  548. android:layout_height="wrap_content"
  549. android:background="?attr/colorPrimary">
  550.  
  551. <android.support.design.widget.CollapsingToolbarLayout
  552. android:layout_width="match_parent"
  553. android:layout_height="match_parent"
  554. app:collapsedTitleGravity="center_horizontal"
  555. app:contentScrim="?attr/colorPrimary"
  556. app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"
  557. app:layout_scrollFlags="scroll|exitUntilCollapsed"
  558. app:titleEnabled="false">
  559.  
  560. <android.support.v4.view.ViewPager
  561. android:id="@+id/viewPager"
  562. android:layout_width="match_parent"
  563. android:layout_height="400dp"
  564. app:layout_collapseMode="parallax" />
  565.  
  566. <android.support.v7.widget.Toolbar
  567. android:id="@+id/toolbar"
  568. android:layout_width="match_parent"
  569. android:layout_height="?attr/actionBarSize"
  570. android:fitsSystemWindows="true"
  571. app:layout_collapseMode="pin"
  572. app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
  573.  
  574. <TextView
  575. android:id="@+id/tvTitle"
  576. style="@style/ProximaTextView"
  577. android:layout_gravity="center"
  578. android:layout_marginStart="16dp"
  579. android:fontFamily="@font/proximanovasemibold"
  580. android:textAppearance="@style/TextAppearance.AppCompat.Title"
  581. android:textColor="@android:color/white" />
  582.  
  583. <ImageView
  584. android:id="@+id/ivShare"
  585. android:layout_width="wrap_content"
  586. android:layout_height="wrap_content"
  587. android:layout_gravity="end"
  588. android:layout_toStartOf="@id/ivLike"
  589. android:padding="@dimen/leftRightMargin"
  590. android:src="@drawable/ic_share" />
  591.  
  592. <ImageView
  593. android:id="@+id/ivLike"
  594. android:layout_width="wrap_content"
  595. android:layout_height="wrap_content"
  596. android:layout_gravity="end"
  597. android:padding="@dimen/leftRightMargin"
  598. android:src="@drawable/ic_like_white" />
  599. </android.support.v7.widget.Toolbar>
  600. </android.support.design.widget.CollapsingToolbarLayout>
  601. </android.support.design.widget.AppBarLayout>
  602.  
  603. <android.support.v4.widget.NestedScrollView
  604. android:id="@+id/scrollView"
  605. android:layout_width="match_parent"
  606. android:layout_height="wrap_content"
  607. android:layout_marginBottom="80dp"
  608. app:layout_behavior="@string/appbar_scrolling_view_behavior">
  609.  
  610. <RelativeLayout
  611. android:layout_width="match_parent"
  612. android:layout_height="wrap_content">
  613.  
  614. <android.support.design.widget.TabLayout
  615. android:id="@+id/tabLines"
  616. android:layout_width="wrap_content"
  617. android:layout_height="?attr/actionBarSize"
  618. android:layout_centerHorizontal="true"
  619. android:backgroundTint="@android:color/white"
  620. app:tabGravity="center"
  621. app:tabIndicatorHeight="0dp"
  622. app:tabPaddingEnd="4dp"
  623. app:tabPaddingStart="4dp" />
  624.  
  625. <TextView
  626. android:id="@+id/tvCategoryTitle"
  627. style="@style/ProximaTextView"
  628. android:layout_below="@id/tabLines"
  629. android:layout_marginStart="@dimen/leftRightMargin"
  630. android:textAppearance="@style/TextAppearance.AppCompat.Title" />
  631.  
  632. <RatingBar
  633. android:id="@+id/rbCatrgoryRating"
  634. style="@style/Base.Widget.AppCompat.RatingBar.Small"
  635. android:layout_width="wrap_content"
  636. android:layout_height="wrap_content"
  637. android:layout_below="@id/tvCategoryTitle"
  638. android:layout_marginStart="@dimen/leftRightMargin"
  639. android:layout_marginTop="8dp"
  640. android:theme="@style/RatingBar" />
  641.  
  642. <TextView
  643. android:id="@+id/tvTotalReviews"
  644. style="@style/ProximaTextView"
  645. android:layout_below="@id/tvCategoryTitle"
  646. android:layout_marginStart="@dimen/leftRightMargin"
  647. android:layout_marginTop="8dp"
  648. android:layout_toEndOf="@id/rbCatrgoryRating"
  649. android:textAppearance="@style/TextAppearance.AppCompat.Caption"
  650. android:textColor="@color/secondaryTextColor" />
  651.  
  652. <TextView
  653. android:id="@+id/tvCategoryLocation"
  654. style="@style/ProximaTextView"
  655. android:layout_below="@id/rbCatrgoryRating"
  656. android:layout_marginStart="@dimen/leftRightMargin"
  657. android:layout_marginTop="8dp"
  658. android:drawablePadding="4dp"
  659. android:drawableStart="@drawable/ic_location_grey"
  660. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  661. android:textColor="@color/secondaryTextColor" />
  662.  
  663. <TextView
  664. android:id="@+id/tvDifficulty"
  665. style="@style/ProximaTextView"
  666. android:layout_below="@id/tvCategoryLocation"
  667. android:layout_marginStart="@dimen/leftRightMargin"
  668. android:layout_marginTop="8dp"
  669. android:drawablePadding="4dp"
  670. android:drawableStart="@drawable/ic_difficulty"
  671. android:fontFamily="@font/proximanovasemibold"
  672. android:text="@string/difficulty"
  673. android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
  674.  
  675. <TextView
  676. android:id="@+id/tvShowDifficulty"
  677. style="@style/ProximaTextView"
  678. android:layout_below="@id/tvCategoryLocation"
  679. android:layout_marginTop="8dp"
  680. android:layout_toEndOf="@id/tvDifficulty"
  681. android:textColor="@color/secondaryTextColor" />
  682.  
  683. <TextView
  684. android:id="@+id/tvGroupSize"
  685. style="@style/ProximaTextView"
  686. android:layout_below="@id/tvDifficulty"
  687. android:layout_marginStart="@dimen/leftRightMargin"
  688. android:layout_marginTop="8dp"
  689. android:drawablePadding="4dp"
  690. android:drawableStart="@drawable/ic_group"
  691. android:fontFamily="@font/proximanovasemibold"
  692. android:text="@string/maxGroupSize"
  693. android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
  694.  
  695. <TextView
  696. android:id="@+id/tvShowGroupSize"
  697. style="@style/ProximaTextView"
  698. android:layout_below="@id/tvDifficulty"
  699. android:layout_marginTop="8dp"
  700. android:layout_toEndOf="@id/tvGroupSize"
  701. android:textColor="@color/secondaryTextColor" />
  702.  
  703. <TextView
  704. android:id="@+id/tvOverView"
  705. style="@style/ProximaTextView"
  706. android:layout_below="@id/tvShowGroupSize"
  707. android:layout_marginStart="@dimen/leftRightMargin"
  708. android:layout_marginTop="24dp"
  709. android:fontFamily="@font/proximanovasemibold"
  710. android:text="@string/overView"
  711. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  712. android:textColor="@color/secondaryTextColor" />
  713.  
  714. <TextView
  715. android:id="@+id/tvShowOverView"
  716. style="@style/ProximaTextView"
  717. android:layout_below="@id/tvOverView"
  718. android:layout_marginEnd="@dimen/leftRightMargin"
  719. android:layout_marginStart="@dimen/leftRightMargin"
  720. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  721. android:textColor="@color/secondaryTextColor" />
  722.  
  723. <View
  724. android:id="@+id/dividerOne"
  725. android:layout_width="match_parent"
  726. android:layout_height="1dp"
  727. android:layout_below="@id/tvShowOverView"
  728. android:layout_marginEnd="@dimen/leftRightMargin"
  729. android:layout_marginStart="@dimen/leftRightMargin"
  730. android:layout_marginTop="@dimen/leftRightMargin"
  731. android:background="@color/lineColor" />
  732.  
  733. <TextView
  734. android:id="@+id/tvExpect"
  735. style="@style/ProximaTextView"
  736. android:layout_below="@id/dividerOne"
  737. android:layout_marginStart="@dimen/leftRightMargin"
  738. android:layout_marginTop="@dimen/leftRightMargin"
  739. android:fontFamily="@font/proximanovasemibold"
  740. android:text="@string/expect"
  741. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  742. android:textColor="@color/secondaryTextColor" />
  743.  
  744. <TextView
  745. android:id="@+id/tvShowExpect"
  746. style="@style/ProximaTextView"
  747. android:layout_below="@id/tvExpect"
  748. android:layout_marginEnd="@dimen/leftRightMargin"
  749. android:layout_marginStart="@dimen/leftRightMargin"
  750. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  751. android:textColor="@color/secondaryTextColor" />
  752.  
  753. <View
  754. android:id="@+id/dividerTwo"
  755. android:layout_width="match_parent"
  756. android:layout_height="1dp"
  757. android:layout_below="@id/tvShowExpect"
  758. android:layout_marginEnd="@dimen/leftRightMargin"
  759. android:layout_marginStart="@dimen/leftRightMargin"
  760. android:layout_marginTop="@dimen/leftRightMargin"
  761. android:background="@color/lineColor" />
  762.  
  763. <TextView
  764. android:id="@+id/tvBring"
  765. style="@style/ProximaTextView"
  766. android:layout_below="@id/dividerTwo"
  767. android:layout_marginStart="@dimen/leftRightMargin"
  768. android:layout_marginTop="@dimen/leftRightMargin"
  769. android:fontFamily="@font/proximanovasemibold"
  770. android:text="@string/bring"
  771. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  772. android:textColor="@color/secondaryTextColor" />
  773.  
  774. <TextView
  775. android:id="@+id/tvShowBring"
  776. style="@style/ProximaTextView"
  777. android:layout_below="@id/tvBring"
  778. android:layout_marginEnd="@dimen/leftRightMargin"
  779. android:layout_marginStart="@dimen/leftRightMargin"
  780. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  781. android:textColor="@color/secondaryTextColor" />
  782.  
  783. <RelativeLayout
  784. android:id="@+id/mapView"
  785. android:layout_width="match_parent"
  786. android:layout_height="240dp"
  787. android:layout_below="@id/tvShowBring"
  788. android:layout_marginTop="24dp">
  789.  
  790. <ImageView
  791. android:id="@+id/map"
  792. android:layout_width="match_parent"
  793. android:layout_height="match_parent"/>
  794.  
  795. <ImageView
  796. android:layout_width="wrap_content"
  797. android:layout_centerInParent="true"
  798. android:layout_height="wrap_content"
  799. android:src="@drawable/location_img"/>
  800. </RelativeLayout>
  801.  
  802. <TextView
  803. android:id="@+id/tvUpcomingAvailability"
  804. style="@style/ProximaTextView"
  805. android:layout_below="@id/mapView"
  806. android:layout_marginStart="@dimen/leftRightMargin"
  807. android:layout_marginTop="20dp"
  808. android:text="@string/upcomingAvailability"
  809. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  810. android:textColor="@color/secondaryTextColor" />
  811.  
  812. <LinearLayout
  813. android:layout_width="wrap_content"
  814. android:id="@+id/view"
  815. android:layout_below="@id/tvUpcomingAvailability"
  816. android:layout_height="wrap_content">
  817.  
  818. <com.henceforth.actafun.CustomeCalender.MCalendarView
  819. android:id="@+id/calender"
  820. android:layout_width="match_parent"
  821. android:layout_height="400dp"/>
  822.  
  823. </LinearLayout>
  824.  
  825. <RelativeLayout
  826. android:id="@+id/seeReview"
  827. android:layout_width="match_parent"
  828. android:layout_height="wrap_content"
  829. android:layout_below="@id/view">
  830.  
  831. <TextView
  832. android:id="@+id/tvReview"
  833. style="@style/ProximaTextView"
  834. android:layout_marginStart="@dimen/leftRightMargin"
  835. android:layout_marginTop="@dimen/leftRightMargin"
  836. android:text="@string/review"
  837. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  838. android:textColor="@color/secondaryTextColor" />
  839.  
  840. <ImageView
  841. android:id="@+id/ivProfilePic"
  842. android:layout_width="60dp"
  843. android:layout_height="60dp"
  844. android:layout_below="@id/tvReview"
  845. android:layout_marginStart="@dimen/leftRightMargin"
  846. android:layout_marginTop="24dp"
  847. android:src="@drawable/user_placeholder" />
  848.  
  849. <TextView
  850. android:id="@+id/tvName"
  851. style="@style/ProximaTextView"
  852. android:layout_below="@id/tvReview"
  853. android:layout_marginStart="8dp"
  854. android:layout_marginTop="36dp"
  855. android:layout_toEndOf="@id/ivProfilePic"
  856. android:textColor="@color/secondaryTextColor" />
  857.  
  858. <RatingBar
  859. android:id="@+id/rbRating"
  860. style="@style/Base.Widget.AppCompat.RatingBar.Small"
  861. android:layout_width="wrap_content"
  862. android:layout_height="wrap_content"
  863. android:layout_below="@id/tvName"
  864. android:layout_marginStart="8dp"
  865. android:layout_marginTop="4dp"
  866. android:layout_toEndOf="@id/ivProfilePic"
  867. android:theme="@style/RatingBar" />
  868.  
  869. <TextView
  870. android:id="@+id/tvViews"
  871. style="@style/ProximaTextView"
  872. android:layout_below="@id/ivProfilePic"
  873. android:layout_marginStart="@dimen/leftRightMargin"
  874. android:layout_marginTop="4dp"
  875. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  876. android:textColor="@color/secondaryTextColor" />
  877.  
  878. <View
  879. android:id="@+id/dividerFour"
  880. android:layout_width="match_parent"
  881. android:layout_height="1dp"
  882. android:layout_below="@id/tvViews"
  883. android:layout_marginEnd="@dimen/leftRightMargin"
  884. android:layout_marginStart="@dimen/leftRightMargin"
  885. android:layout_marginTop="@dimen/leftRightMargin"
  886. android:background="@color/lineColor" />
  887.  
  888. <RelativeLayout
  889. android:layout_width="match_parent"
  890. android:id="@+id/rlView2"
  891. android:visibility="gone"
  892. android:layout_below="@id/dividerFour"
  893. android:layout_height="wrap_content">
  894.  
  895. <ImageView
  896. android:id="@+id/ivProfilePic1"
  897. android:layout_width="60dp"
  898. android:layout_height="60dp"
  899. android:layout_marginStart="@dimen/leftRightMargin"
  900. android:layout_marginTop="8dp"
  901. android:src="@drawable/user_placeholder" />
  902.  
  903. <TextView
  904. android:id="@+id/tvName1"
  905. style="@style/ProximaTextView"
  906. android:layout_marginStart="8dp"
  907. android:layout_marginTop="24dp"
  908. android:layout_toEndOf="@id/ivProfilePic1"
  909. android:textColor="@color/secondaryTextColor" />
  910.  
  911. <RatingBar
  912. android:id="@+id/rbRating1"
  913. style="@style/Base.Widget.AppCompat.RatingBar.Small"
  914. android:layout_width="wrap_content"
  915. android:layout_height="wrap_content"
  916. android:layout_below="@id/tvName1"
  917. android:layout_marginStart="8dp"
  918. android:layout_marginTop="4dp"
  919. android:layout_toEndOf="@id/ivProfilePic1"
  920. android:theme="@style/RatingBar" />
  921.  
  922. <TextView
  923. android:id="@+id/tvViews1"
  924. style="@style/ProximaTextView"
  925. android:layout_below="@id/ivProfilePic1"
  926. android:layout_marginStart="@dimen/leftRightMargin"
  927. android:layout_marginTop="4dp"
  928. android:textAppearance="@style/TextAppearance.AppCompat.Body1"
  929. android:textColor="@color/secondaryTextColor" />
  930.  
  931. <View
  932. android:layout_width="match_parent"
  933. android:layout_height="1dp"
  934. android:layout_below="@id/tvViews1"
  935. android:layout_marginEnd="@dimen/leftRightMargin"
  936. android:layout_marginStart="@dimen/leftRightMargin"
  937. android:layout_marginTop="@dimen/leftRightMargin"
  938. android:background="@color/lineColor" />
  939. </RelativeLayout>
  940.  
  941. </RelativeLayout>
  942.  
  943. <TextView
  944. android:id="@+id/tvReadReview"
  945. style="@style/ProximaTextView"
  946. android:layout_width="match_parent"
  947. android:layout_height="40dp"
  948. android:layout_below="@+id/seeReview"
  949. android:gravity="center"
  950. android:paddingTop="@dimen/leftRightMargin"
  951. android:textColor="@color/splashScreenColor" />
  952.  
  953. <View
  954. android:id="@+id/dividerFive"
  955. android:layout_width="match_parent"
  956. android:layout_height="1dp"
  957. android:layout_below="@id/tvReadReview"
  958. android:layout_marginEnd="@dimen/leftRightMargin"
  959. android:layout_marginStart="@dimen/leftRightMargin"
  960. android:layout_marginTop="@dimen/leftRightMargin"
  961. android:background="@color/lineColor" />
  962.  
  963. <!--<TextView-->
  964. <!--android:id="@+id/tvCancelPolicy"-->
  965. <!--style="@style/ProximaTextView"-->
  966. <!--android:layout_below="@+id/dividerFive"-->
  967. <!--android:layout_marginStart="@dimen/leftRightMargin"-->
  968. <!--android:layout_marginTop="@dimen/leftRightMargin"-->
  969. <!--android:text="@string/cancelPolicy"-->
  970. <!--android:textColor="@color/secondaryTextColor" />-->
  971.  
  972. <!--<TextView-->
  973. <!--android:id="@+id/tvPolicyView"-->
  974. <!--style="@style/ProximaTextView"-->
  975. <!--android:layout_alignParentEnd="true"-->
  976. <!--android:layout_below="@id/dividerFive"-->
  977. <!--android:layout_marginEnd="@dimen/leftRightMargin"-->
  978. <!--android:layout_marginTop="@dimen/leftRightMargin"-->
  979. <!--android:text="@string/see"-->
  980. <!--android:textColor="@color/greenColor" />-->
  981.  
  982. <!--<View-->
  983. <!--android:id="@+id/dividerSix"-->
  984. <!--android:layout_width="match_parent"-->
  985. <!--android:layout_height="1dp"-->
  986. <!--android:layout_below="@id/tvCancelPolicy"-->
  987. <!--android:layout_marginEnd="@dimen/leftRightMargin"-->
  988. <!--android:layout_marginStart="@dimen/leftRightMargin"-->
  989. <!--android:layout_marginTop="@dimen/leftRightMargin"-->
  990. <!--android:background="@color/lineColor" />-->
  991.  
  992. <TextView
  993. android:id="@+id/tvDiifferentCategory"
  994. style="@style/ProximaTextView"
  995. android:layout_below="@id/dividerFive"
  996. android:layout_marginStart="@dimen/leftRightMargin"
  997. android:layout_marginTop="@dimen/leftRightMargin"
  998. android:text="Similar Activities"
  999. android:textAllCaps="false"
  1000. android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
  1001. android:textColor="@color/secondaryTextColor" />
  1002.  
  1003. <android.support.v7.widget.RecyclerView
  1004. android:id="@+id/rvCategoriesList"
  1005. android:layout_width="match_parent"
  1006. android:layout_height="wrap_content"
  1007. android:layout_below="@id/tvDiifferentCategory"
  1008. android:layout_marginTop="@dimen/leftRightMargin" />
  1009.  
  1010. </RelativeLayout>
  1011. </android.support.v4.widget.NestedScrollView>
  1012.  
  1013. <RelativeLayout
  1014. android:id="@+id/fixLayout"
  1015. android:layout_width="match_parent"
  1016. android:layout_height="60dp"
  1017. android:layout_gravity="bottom"
  1018. android:background="@android:color/white">
  1019.  
  1020. <View
  1021. android:layout_width="match_parent"
  1022. android:layout_height="1dp"
  1023. android:background="@color/lineColor" />
  1024.  
  1025. <TextView
  1026. android:id="@+id/tvCategoryPrice"
  1027. style="@style/ProximaTextView"
  1028. android:layout_centerVertical="true"
  1029. android:layout_marginStart="24dp"
  1030. android:textColor="@color/splashScreenColor" />
  1031.  
  1032. <Button
  1033. android:id="@+id/btnBook"
  1034. style="@style/ProximaButton"
  1035. android:layout_width="140dp"
  1036. android:layout_centerVertical="true"
  1037. android:layout_alignParentEnd="true"
  1038. android:layout_marginEnd="8dp"
  1039. android:text="@string/seeDate" />
  1040.  
  1041. </RelativeLayout>
  1042.  
  1043. </android.support.design.widget.CoordinatorLayout>
Add Comment
Please, Sign In to add comment