Search in sources :

Example 1 with Venue

use of app.insti.api.model.Venue in project IITB-App by wncc.

the class EventFragment method inflateViews.

private void inflateViews(final Event event) {
    if (getActivity() == null || getView() == null)
        return;
    eventPicture = (ImageView) getActivity().findViewById(R.id.event_picture_2);
    final TextView eventTitle = (TextView) getActivity().findViewById(R.id.event_page_title);
    final TextView eventDate = (TextView) getActivity().findViewById(R.id.event_page_date);
    final TextView eventDescription = (TextView) getActivity().findViewById(R.id.event_page_description);
    goingButton = getActivity().findViewById(R.id.going_button);
    interestedButton = getActivity().findViewById(R.id.interested_button);
    final ImageButton navigateButton = getActivity().findViewById(R.id.navigate_button);
    final ImageButton webEventButton = getActivity().findViewById(R.id.web_event_button);
    final ImageButton shareEventButton = getActivity().findViewById(R.id.share_event_button);
    if (event.isEventBigImage() || !creatingView) {
        Picasso.get().load(event.getEventImageURL()).into(eventPicture);
    } else {
        Picasso.get().load(Utils.resizeImageUrl(event.getEventImageURL())).into(eventPicture);
    }
    eventTitle.setText(event.getEventName());
    Timestamp timestamp = event.getEventStartTime();
    Date Date = new Date(timestamp.getTime());
    SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("dd MMM");
    SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm");
    // Check for minimal event
    if (event.getEventDescription() == null) {
        refreshEvent(event);
        return;
    }
    Utils.getMarkwon().setMarkdown(eventDescription, event.getEventDescription());
    final List<CardInterface> cardList = new ArrayList<>(event.getEventOfferedAchievements());
    cardList.addAll(event.getEventBodies());
    final RecyclerView bodyRecyclerView = getActivity().findViewById(R.id.body_card_recycler_view);
    GenericAdapter genericAdapter = new GenericAdapter(cardList, this);
    bodyRecyclerView.setAdapter(genericAdapter);
    bodyRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    // Common
    final String timing = simpleDateFormatDate.format(Date) + " | " + simpleDateFormatTime.format(Date);
    StringBuilder eventVenueName = new StringBuilder();
    for (Venue venue : event.getEventVenues()) {
        eventVenueName.append(", ").append(venue.getVenueShortName());
    }
    // Make the venues clickable
    if (eventVenueName.length() > 0) {
        // Get the whole string
        SpannableString ss = new SpannableString(eventVenueName.toString().substring(2));
        // Make each venue clickable
        int i = 0;
        for (final Venue venue : event.getEventVenues()) {
            int length = venue.getVenueShortName().length();
            ClickableSpan cs = new ClickableSpan() {

                @Override
                public void onClick(@NonNull View widget) {
                    MapFragment mapFragment = MapFragment.newInstance(MapFragment.getPassableName(venue.getVenueShortName()));
                    ((MainActivity) getActivity()).updateFragment(mapFragment);
                }

                @Override
                public void updateDrawState(TextPaint ds) {
                    super.updateDrawState(ds);
                    if (getActivity() == null || !isAdded())
                        return;
                    ds.setColor(getResources().getColor(R.color.primaryTextColor));
                    ds.setUnderlineText(false);
                }
            };
            ss.setSpan(cs, i, i + length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
            i += length + 2;
        }
        // Setup the text view
        eventDate.setText(TextUtils.concat(timing + " | ", ss));
        eventDate.setMovementMethod(LinkMovementMethod.getInstance());
    } else {
        eventDate.setText(TextUtils.concat(timing));
    }
    interestedButton.setOnClickListener(getInterestedButtonOnClickListener());
    goingButton.setOnClickListener(getGoingButtonOnClickListener());
    updateGoingInterestedButtonsAppearance(event.getEventUserUes());
    if (!event.getEventVenues().isEmpty()) {
        if (event.getEventVenues().get(0).getVenueLatitude() == 0) {
            navigateButton.setVisibility(View.GONE);
        } else {
            navigateButton.setOnClickListener(v -> {
                Venue primaryVenue = event.getEventVenues().get(0);
                Uri gmmIntentUri = Uri.parse("google.navigation:q=" + primaryVenue.getVenueLatitude() + "," + primaryVenue.getVenueLongitude() + "(" + primaryVenue.getVenueName() + ")");
                Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                mapIntent.setPackage("com.google.android.apps.maps");
                startActivity(mapIntent);
            });
        }
    } else {
        navigateButton.setVisibility(View.GONE);
    }
    shareEventButton.setOnClickListener(new View.OnClickListener() {

        String shareUrl = ShareURLMaker.getEventURL(event);

        @Override
        public void onClick(View view) {
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL");
            i.putExtra(Intent.EXTRA_TEXT, shareUrl);
            startActivity(Intent.createChooser(i, "Share URL"));
        }
    });
    if (event.getEventWebsiteURL() != null && !event.getEventWebsiteURL().isEmpty()) {
        webEventButton.setVisibility(View.VISIBLE);
        webEventButton.setOnClickListener(new View.OnClickListener() {

            String eventwebURL = event.getEventWebsiteURL();

            @Override
            public void onClick(View view) {
                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(eventwebURL));
                startActivity(browserIntent);
            }
        });
    }
    eventPicture.setOnClickListener(v -> zoomImageFromThumb(eventPicture));
    mShortAnimationDuration = getResources().getInteger(android.R.integer.config_shortAnimTime);
    final FloatingActionButton fab = getView().findViewById(R.id.edit_fab);
    if (((MainActivity) getActivity()).editEventAccess(event)) {
        fab.show();
        NestedScrollView nsv = getView().findViewById(R.id.event_scrollview);
        nsv.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
            if (scrollY > oldScrollY)
                fab.hide();
            else
                fab.show();
        });
    }
    fab.setOnClickListener(v -> {
        WebViewFragment webViewFragment = new WebViewFragment();
        Bundle bundle = new Bundle();
        bundle.putString(Constants.WV_TYPE, Constants.WV_TYPE_UPDATE_EVENT);
        bundle.putString(Constants.WV_ID, event.getEventID());
        webViewFragment.setArguments(bundle);
        ((MainActivity) getActivity()).updateFragment(webViewFragment);
    });
}
Also used : MainActivity(app.insti.activity.MainActivity) Rect(android.graphics.Rect) ImageButton(android.widget.ImageButton) Bundle(android.os.Bundle) NestedScrollView(androidx.core.widget.NestedScrollView) RetrofitInterface(app.insti.api.RetrofitInterface) NonNull(androidx.annotation.NonNull) Date(java.util.Date) Spannable(android.text.Spannable) Uri(android.net.Uri) ImageView(android.widget.ImageView) ClickableSpan(android.text.style.ClickableSpan) Animator(android.animation.Animator) LinkMovementMethod(android.text.method.LinkMovementMethod) CalendarContract(android.provider.CalendarContract) AppBarLayout(com.google.android.material.appbar.AppBarLayout) Picasso(com.squareup.picasso.Picasso) CheckBox(android.widget.CheckBox) Gson(com.google.gson.Gson) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) Fragment(androidx.fragment.app.Fragment) View(android.view.View) Button(android.widget.Button) RecyclerView(androidx.recyclerview.widget.RecyclerView) GenericAdapter(app.insti.adapter.GenericAdapter) CoordinatorLayout(androidx.coordinatorlayout.widget.CoordinatorLayout) Utils(app.insti.Utils) ObjectAnimator(android.animation.ObjectAnimator) Timestamp(java.sql.Timestamp) CardInterface(app.insti.interfaces.CardInterface) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) ViewGroup(android.view.ViewGroup) AlertDialog(android.app.AlertDialog) List(java.util.List) TextView(android.widget.TextView) TextPaint(android.text.TextPaint) Toolbar(androidx.appcompat.widget.Toolbar) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) Call(retrofit2.Call) DecelerateInterpolator(android.view.animation.DecelerateInterpolator) EmptyCallback(app.insti.api.EmptyCallback) Context(android.content.Context) Constants(app.insti.Constants) Spanned(android.text.Spanned) SimpleDateFormat(java.text.SimpleDateFormat) Intent(android.content.Intent) Response(retrofit2.Response) Event(app.insti.api.model.Event) ArrayList(java.util.ArrayList) Toast(android.widget.Toast) AnimatorSet(android.animation.AnimatorSet) ShareURLMaker(app.insti.ShareURLMaker) R(app.insti.R) SpannableString(android.text.SpannableString) LayoutInflater(android.view.LayoutInflater) Point(android.graphics.Point) TextUtils(android.text.TextUtils) RelativeSizeSpan(android.text.style.RelativeSizeSpan) Color(android.graphics.Color) Venue(app.insti.api.model.Venue) SharedPreferences(android.content.SharedPreferences) Callback(retrofit2.Callback) ArrayList(java.util.ArrayList) SpannableString(android.text.SpannableString) MainActivity(app.insti.activity.MainActivity) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) Timestamp(java.sql.Timestamp) Uri(android.net.Uri) ImageButton(android.widget.ImageButton) NonNull(androidx.annotation.NonNull) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) TextView(android.widget.TextView) GenericAdapter(app.insti.adapter.GenericAdapter) CardInterface(app.insti.interfaces.CardInterface) Venue(app.insti.api.model.Venue) Bundle(android.os.Bundle) Intent(android.content.Intent) ClickableSpan(android.text.style.ClickableSpan) NestedScrollView(androidx.core.widget.NestedScrollView) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) Date(java.util.Date) TextPaint(android.text.TextPaint) Point(android.graphics.Point) TextPaint(android.text.TextPaint) SpannableString(android.text.SpannableString) RecyclerView(androidx.recyclerview.widget.RecyclerView) NestedScrollView(androidx.core.widget.NestedScrollView) SimpleDateFormat(java.text.SimpleDateFormat)

Aggregations

Animator (android.animation.Animator)1 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)1 AnimatorSet (android.animation.AnimatorSet)1 ObjectAnimator (android.animation.ObjectAnimator)1 AlertDialog (android.app.AlertDialog)1 Context (android.content.Context)1 Intent (android.content.Intent)1 SharedPreferences (android.content.SharedPreferences)1 Color (android.graphics.Color)1 Point (android.graphics.Point)1 Rect (android.graphics.Rect)1 Uri (android.net.Uri)1 Bundle (android.os.Bundle)1 CalendarContract (android.provider.CalendarContract)1 Spannable (android.text.Spannable)1 SpannableString (android.text.SpannableString)1 Spanned (android.text.Spanned)1 TextPaint (android.text.TextPaint)1 TextUtils (android.text.TextUtils)1 LinkMovementMethod (android.text.method.LinkMovementMethod)1