use of app.insti.interfaces.CardInterface 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);
});
}
use of app.insti.interfaces.CardInterface in project IITB-App by wncc.
the class BodyFragment method displayBody.
private void displayBody() {
/* Skip if we're already destroyed */
if (getActivity() == null || getView() == null)
return;
if (body != min_body)
bodyDisplayed = true;
bodyPicture = (ImageView) getActivity().findViewById(R.id.body_picture);
/* Load only low res image if transition is not completed */
if (transitionEnded) {
Utils.loadImageWithPlaceholder(bodyPicture, body.getBodyImageURL());
} else {
Picasso.get().load(Utils.resizeImageUrl(body.getBodyImageURL())).into(bodyPicture);
}
/* Skip for min body */
if (body == min_body) {
return;
}
bodyPicture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zoomImageFromThumb(bodyPicture);
final FloatingActionButton fab = getView().findViewById(R.id.edit_fab);
fab.hide();
}
});
mShortAnimationDuration = getResources().getInteger(android.R.integer.config_shortAnimTime);
final List<Role> roles = body.getBodyRoles();
final List<User> users = new ArrayList<>();
for (Role role : roles) {
if (role.getRoleUsersDetail() != null) {
for (User user : role.getRoleUsersDetail()) {
user.setCurrentRole(role.getRoleName());
users.add(user);
}
}
}
final List<CardInterface> cards = new ArrayList<>();
cards.add(new BodyHeadCard(body));
addWithTitleCard(cards, body.getBodyEvents(), "Events");
addWithTitleCard(cards, users, "People");
addWithTitleCard(cards, body.getBodyChildren(), "Organizations");
addWithTitleCard(cards, body.getBodyParents(), "Part of");
final RecyclerView recyclerView = (RecyclerView) getActivity().findViewById(R.id.body_recycler_view);
GenericAdapter genericAdapter = new GenericAdapter(cards, this);
recyclerView.setAdapter(genericAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
getActivity().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
/* Show update button if role */
if (((MainActivity) getActivity()).editBodyAccess(body)) {
final FloatingActionButton fab = getView().findViewById(R.id.edit_fab);
fab.show();
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0)
fab.hide();
else
fab.show();
}
});
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WebViewFragment webViewFragment = new WebViewFragment();
Bundle bundle = new Bundle();
bundle.putString(Constants.WV_TYPE, Constants.WV_TYPE_UPDATE_BODY);
bundle.putString(Constants.WV_ID, body.getBodyID());
webViewFragment.setArguments(bundle);
((MainActivity) getActivity()).updateFragment(webViewFragment);
}
});
}
}
use of app.insti.interfaces.CardInterface in project IITB-App by wncc.
the class GenericRecyclerViewFragment method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
try {
byte[] b = getArguments().getByteArray(Constants.ROLE_LIST_JSON);
ByteArrayInputStream bi = new ByteArrayInputStream(b);
ObjectInputStream si = new ObjectInputStream(bi);
cardInterfaces = (List<CardInterface>) si.readObject();
} catch (Exception e) {
Log.wtf("profile", e);
cardInterfaces = new ArrayList<>();
}
}
}
use of app.insti.interfaces.CardInterface in project IITB-App by wncc.
the class UserFragment method populateViews.
private void populateViews() {
if (getActivity() == null || getView() == null)
return;
userProfilePictureImageView = getActivity().findViewById(R.id.user_profile_picture_profile);
TextView userNameTextView = getActivity().findViewById(R.id.user_name_profile);
TextView userRollNumberTextView = getActivity().findViewById(R.id.user_rollno_profile);
final TextView userEmailIDTextView = getActivity().findViewById(R.id.user_email_profile);
TextView userContactNumberTextView = getActivity().findViewById(R.id.user_contact_no_profile);
FloatingActionButton userShareFab = getActivity().findViewById(R.id.share_user_button);
Picasso.get().load(user.getUserProfilePictureUrl()).placeholder(R.drawable.user_placeholder).into(userProfilePictureImageView);
userProfilePictureImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zoomImageFromThumb(userProfilePictureImageView);
}
});
mShortAnimationDuration = getResources().getInteger(android.R.integer.config_shortAnimTime);
if (!showingMin) {
/* Show tabs */
getActivity().findViewById(R.id.tab_layout).setVisibility(VISIBLE);
/* Load lists */
final List<Role> roleList = user.getUserRoles();
final List<Body> bodyList = user.getUserFollowedBodies();
final List<Event> eventList = user.getUserGoingEvents();
final List<Role> formerRoleList = user.getUserFormerRoles();
/* Construct user profile */
final List<CardInterface> profile = new ArrayList<>(roleList);
for (Role role : formerRoleList) {
Role temp = new Role(role);
temp.setRoleName("Former " + role.getRoleName() + " " + role.getRoleYear());
profile.add(temp);
}
profile.addAll(user.getUserAchievements());
List<Event> eventInterestedList = user.getUserInterestedEvents();
eventList.removeAll(eventInterestedList);
eventList.addAll(eventInterestedList);
GenericRecyclerViewFragment frag1 = GenericRecyclerViewFragment.newInstance(profile);
BodyRecyclerViewFragment frag2 = BodyRecyclerViewFragment.newInstance(bodyList);
EventRecyclerViewFragment frag3 = EventRecyclerViewFragment.newInstance(eventList);
frag1.parentFragment = this;
frag2.parentFragment = this;
frag3.parentFragment = this;
TabAdapter tabAdapter = new TabAdapter(getChildFragmentManager());
tabAdapter.addFragment(frag1, "Profile");
tabAdapter.addFragment(frag2, "Following");
tabAdapter.addFragment(frag3, "Events");
// Set up the ViewPager with the sections adapter.
ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.viewPager);
viewPager.setAdapter(tabAdapter);
viewPager.setOffscreenPageLimit(2);
TabLayout tabLayout = (TabLayout) getActivity().findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
userShareFab.show();
getActivity().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
}
userNameTextView.setText(user.getUserName());
userRollNumberTextView.setText(user.getUserRollNumber());
if (user.getUserEmail() != null && !user.getUserEmail().equals("N/A")) {
userEmailIDTextView.setText(user.getUserEmail());
} else {
if (user.getUserRollNumber() != null)
userEmailIDTextView.setText(user.getUserRollNumber() + "@iitb.ac.in");
}
userEmailIDTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mail((String) userEmailIDTextView.getText());
}
});
if (!"N/A".equals(user.getUserContactNumber())) {
userContactNumberTextView.setText(user.getUserContactNumber());
userContactNumberTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
call(user.getUserContactNumber());
}
});
} else {
userContactNumberTextView.setVisibility(View.GONE);
}
userShareFab.setOnClickListener(new View.OnClickListener() {
String shareUrl = ShareURLMaker.getUserURL(user);
@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"));
}
});
}
Aggregations