Search in sources :

Example 1 with Microlocation

use of org.fossasia.openevent.data.Microlocation in project open-event-android by fossasia.

the class MainActivity method handleJsonEvent.

@Subscribe
public void handleJsonEvent(final JsonReadEvent jsonReadEvent) {
    final String name = jsonReadEvent.getName();
    final String json = jsonReadEvent.getJson();
    disposable.add(Completable.fromAction(() -> {
        ObjectMapper objectMapper = APIClient.getObjectMapper();
        // Need separate instance for background thread
        Realm realm = Realm.getDefaultInstance();
        RealmDataRepository realmDataRepository = RealmDataRepository.getInstance(realm);
        switch(name) {
            case ConstantStrings.EVENT:
                {
                    Event event = objectMapper.readValue(json, Event.class);
                    saveEventDates(event);
                    realmDataRepository.saveEvent(event).subscribe();
                    realmDataRepository.saveEvent(event).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new EventDownloadEvent(true));
                    break;
                }
            case ConstantStrings.TRACKS:
                {
                    List<Track> tracks = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, Track.class));
                    realmDataRepository.saveTracks(tracks).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new TracksDownloadEvent(true));
                    break;
                }
            case ConstantStrings.SESSIONS:
                {
                    List<Session> sessions = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, Session.class));
                    for (Session current : sessions) {
                        current.setStartDate(current.getStartsAt().split("T")[0]);
                    }
                    realmDataRepository.saveSessions(sessions).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new SessionDownloadEvent(true));
                    break;
                }
            case ConstantStrings.SPEAKERS:
                {
                    List<Speaker> speakers = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, Speaker.class));
                    realmRepo.saveSpeakers(speakers).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new SpeakerDownloadEvent(true));
                    break;
                }
            case ConstantStrings.SPONSORS:
                {
                    List<Sponsor> sponsors = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, Sponsor.class));
                    realmRepo.saveSponsors(sponsors).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new SponsorDownloadEvent(true));
                    break;
                }
            case ConstantStrings.MICROLOCATIONS:
                {
                    List<Microlocation> microlocations = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, Microlocation.class));
                    realmRepo.saveLocations(microlocations).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new MicrolocationDownloadEvent(true));
                    break;
                }
            case ConstantStrings.SESSION_TYPES:
                {
                    List<SessionType> sessionTypes = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, SessionType.class));
                    realmRepo.saveSessionTypes(sessionTypes).subscribe();
                    StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new SessionTypesDownloadEvent(true));
                    break;
                }
            default:
        }
        realm.close();
    }).observeOn(Schedulers.computation()).subscribe(() -> Timber.d("Saved event from JSON"), throwable -> {
        throwable.printStackTrace();
        Timber.e(throwable);
        StrategyRegistry.getInstance().getEventBusStrategy().postEventOnUIThread(new RetrofitError(throwable));
    }));
}
Also used : SpeakerDownloadEvent(org.fossasia.openevent.common.events.SpeakerDownloadEvent) Bundle(android.os.Bundle) Completable(io.reactivex.Completable) ImageView(android.widget.ImageView) DataDownloadEvent(org.fossasia.openevent.common.events.DataDownloadEvent) Track(org.fossasia.openevent.data.Track) Handler(android.os.Handler) ConnectivityManager(android.net.ConnectivityManager) SmoothActionBarDrawerToggle(org.fossasia.openevent.common.ui.SmoothActionBarDrawerToggle) Realm(io.realm.Realm) TracksDownloadEvent(org.fossasia.openevent.common.events.TracksDownloadEvent) SessionType(org.fossasia.openevent.data.SessionType) Fragment(android.support.v4.app.Fragment) LocationsFragment(org.fossasia.openevent.core.location.LocationsFragment) Snackbar(android.support.design.widget.Snackbar) DialogFactory(org.fossasia.openevent.common.ui.DialogFactory) Sponsor(org.fossasia.openevent.data.Sponsor) ConstantStrings(org.fossasia.openevent.common.ConstantStrings) FacebookApi(org.fossasia.openevent.core.feed.facebook.api.FacebookApi) ButterKnife(butterknife.ButterKnife) UserProfileActivity(org.fossasia.openevent.core.auth.profile.UserProfileActivity) Dialog(android.app.Dialog) SponsorsFragment(org.fossasia.openevent.core.sponsor.SponsorsFragment) BaseActivity(org.fossasia.openevent.common.ui.base.BaseActivity) CommonTaskLoop(org.fossasia.openevent.common.utils.CommonTaskLoop) SpeakerDownloadEvent(org.fossasia.openevent.common.events.SpeakerDownloadEvent) Menu(android.view.Menu) DownloadCompleteHandler(org.fossasia.openevent.common.api.DownloadCompleteHandler) Settings(android.provider.Settings) Observable(io.reactivex.Observable) DrawerLayout(android.support.v4.widget.DrawerLayout) StrategyRegistry(org.fossasia.openevent.config.StrategyRegistry) ComponentName(android.content.ComponentName) DataDownloadManager(org.fossasia.openevent.common.api.DataDownloadManager) TextUtils(android.text.TextUtils) IOException(java.io.IOException) CounterEvent(org.fossasia.openevent.common.events.CounterEvent) Subscribe(com.squareup.otto.Subscribe) FragmentManager(android.support.v4.app.FragmentManager) AlertDialog(android.support.v7.app.AlertDialog) Toolbar(android.support.v7.widget.Toolbar) Microlocation(org.fossasia.openevent.data.Microlocation) Session(org.fossasia.openevent.data.Session) JsonReadEvent(org.fossasia.openevent.common.events.JsonReadEvent) RealmDataRepository(org.fossasia.openevent.data.repository.RealmDataRepository) EditText(android.widget.EditText) NavigationView(android.support.design.widget.NavigationView) Rect(android.graphics.Rect) SocialLink(org.fossasia.openevent.data.extras.SocialLink) AndroidSchedulers(io.reactivex.android.schedulers.AndroidSchedulers) SessionDownloadEvent(org.fossasia.openevent.common.events.SessionDownloadEvent) BindView(butterknife.BindView) TracksFragment(org.fossasia.openevent.core.track.TracksFragment) SettingsActivity(org.fossasia.openevent.core.settings.SettingsActivity) EventDownloadEvent(org.fossasia.openevent.common.events.EventDownloadEvent) CustomTabsServiceConnection(android.support.customtabs.CustomTabsServiceConnection) APIClient(org.fossasia.openevent.common.api.APIClient) View(android.view.View) Schedulers(io.reactivex.schedulers.Schedulers) CustomTabsClient(android.support.customtabs.CustomTabsClient) R(org.fossasia.openevent.R) RetrofitResponseEvent(org.fossasia.openevent.common.events.RetrofitResponseEvent) NetworkInfo(android.net.NetworkInfo) SponsorDownloadEvent(org.fossasia.openevent.common.events.SponsorDownloadEvent) Urls(org.fossasia.openevent.common.api.Urls) DiscountCodeFragment(org.fossasia.openevent.core.discount.DiscountCodeFragment) ScheduleFragment(org.fossasia.openevent.core.schedule.ScheduleFragment) SharedPreferencesUtil(org.fossasia.openevent.common.utils.SharedPreferencesUtil) Timber(timber.log.Timber) AuthUtil(org.fossasia.openevent.core.auth.AuthUtil) List(java.util.List) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) NetworkUtils(org.fossasia.openevent.common.network.NetworkUtils) Nullable(android.support.annotation.Nullable) AboutFragment(org.fossasia.openevent.core.about.AboutFragment) ShowNetworkDialogEvent(org.fossasia.openevent.common.events.ShowNetworkDialogEvent) Context(android.content.Context) AppBarLayout(android.support.design.widget.AppBarLayout) CoordinatorLayout(android.support.design.widget.CoordinatorLayout) DownloadEvent(org.fossasia.openevent.common.events.DownloadEvent) Utils(org.fossasia.openevent.common.utils.Utils) RealmList(io.realm.RealmList) ZoomableImageUtil(org.fossasia.openevent.common.ui.image.ZoomableImageUtil) Intent(android.content.Intent) FAQFragment(org.fossasia.openevent.core.faqs.FAQFragment) MenuItem(android.view.MenuItem) InputMethodManager(android.view.inputmethod.InputMethodManager) GravityCompat(android.support.v4.view.GravityCompat) RetrofitError(org.fossasia.openevent.common.events.RetrofitError) Event(org.fossasia.openevent.data.Event) MotionEvent(android.view.MotionEvent) NotificationsFragment(org.fossasia.openevent.core.notifications.NotificationsFragment) Speaker(org.fossasia.openevent.data.Speaker) Build(android.os.Build) WeakReference(java.lang.ref.WeakReference) ActionBar(android.support.v7.app.ActionBar) EventLoadedEvent(org.fossasia.openevent.common.events.EventLoadedEvent) DialogInterface(android.content.DialogInterface) MicrolocationDownloadEvent(org.fossasia.openevent.common.events.MicrolocationDownloadEvent) RealmResults(io.realm.RealmResults) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) DateConverter(org.fossasia.openevent.common.date.DateConverter) NoInternetEvent(org.fossasia.openevent.common.events.NoInternetEvent) FeedFragment(org.fossasia.openevent.core.feed.FeedFragment) SessionTypesDownloadEvent(org.fossasia.openevent.common.events.SessionTypesDownloadEvent) SpeakersListFragment(org.fossasia.openevent.core.speaker.SpeakersListFragment) InputStream(java.io.InputStream) SessionType(org.fossasia.openevent.data.SessionType) SessionTypesDownloadEvent(org.fossasia.openevent.common.events.SessionTypesDownloadEvent) EventDownloadEvent(org.fossasia.openevent.common.events.EventDownloadEvent) MicrolocationDownloadEvent(org.fossasia.openevent.common.events.MicrolocationDownloadEvent) List(java.util.List) RealmList(io.realm.RealmList) Realm(io.realm.Realm) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Speaker(org.fossasia.openevent.data.Speaker) SponsorDownloadEvent(org.fossasia.openevent.common.events.SponsorDownloadEvent) RetrofitError(org.fossasia.openevent.common.events.RetrofitError) RealmDataRepository(org.fossasia.openevent.data.repository.RealmDataRepository) Sponsor(org.fossasia.openevent.data.Sponsor) SessionDownloadEvent(org.fossasia.openevent.common.events.SessionDownloadEvent) DataDownloadEvent(org.fossasia.openevent.common.events.DataDownloadEvent) TracksDownloadEvent(org.fossasia.openevent.common.events.TracksDownloadEvent) SpeakerDownloadEvent(org.fossasia.openevent.common.events.SpeakerDownloadEvent) CounterEvent(org.fossasia.openevent.common.events.CounterEvent) JsonReadEvent(org.fossasia.openevent.common.events.JsonReadEvent) SessionDownloadEvent(org.fossasia.openevent.common.events.SessionDownloadEvent) EventDownloadEvent(org.fossasia.openevent.common.events.EventDownloadEvent) RetrofitResponseEvent(org.fossasia.openevent.common.events.RetrofitResponseEvent) SponsorDownloadEvent(org.fossasia.openevent.common.events.SponsorDownloadEvent) ShowNetworkDialogEvent(org.fossasia.openevent.common.events.ShowNetworkDialogEvent) DownloadEvent(org.fossasia.openevent.common.events.DownloadEvent) Event(org.fossasia.openevent.data.Event) MotionEvent(android.view.MotionEvent) EventLoadedEvent(org.fossasia.openevent.common.events.EventLoadedEvent) MicrolocationDownloadEvent(org.fossasia.openevent.common.events.MicrolocationDownloadEvent) NoInternetEvent(org.fossasia.openevent.common.events.NoInternetEvent) SessionTypesDownloadEvent(org.fossasia.openevent.common.events.SessionTypesDownloadEvent) TracksDownloadEvent(org.fossasia.openevent.common.events.TracksDownloadEvent) Track(org.fossasia.openevent.data.Track) Microlocation(org.fossasia.openevent.data.Microlocation) Session(org.fossasia.openevent.data.Session) Subscribe(com.squareup.otto.Subscribe)

Example 2 with Microlocation

use of org.fossasia.openevent.data.Microlocation in project open-event-android by fossasia.

the class OSMapFragment method showEvent.

private void showEvent() {
    if (!event.isValid())
        return;
    try {
        int id = SharedPreferencesUtil.getInt(ConstantStrings.SESSION_MAP_ID, -1);
        if (id != -1) {
            Session session = realmRepo.getSessionSync(id);
            Microlocation microlocation = session.getMicrolocation();
            if (microlocation.getLatitude() == 0 && microlocation.getLongitude() == 0) {
                setDestinationLatitude(event.getLatitude());
                setDestinationLongitude(event.getLongitude());
                setDestinationName(event.getLocationName());
            } else {
                setDestinationLatitude(microlocation.getLatitude());
                setDestinationLongitude(microlocation.getLongitude());
                setDestinationName(microlocation.getName());
            }
        } else {
            setDestinationLatitude(event.getLatitude());
            setDestinationLongitude(event.getLongitude());
            setDestinationName(event.getLocationName());
        }
    } catch (Exception e) {
        setDestinationLatitude(event.getLatitude());
        setDestinationLongitude(event.getLongitude());
        setDestinationName(event.getLocationName());
    }
}
Also used : GeoPoint(org.osmdroid.util.GeoPoint) Microlocation(org.fossasia.openevent.data.Microlocation) Session(org.fossasia.openevent.data.Session)

Example 3 with Microlocation

use of org.fossasia.openevent.data.Microlocation in project open-event-android by fossasia.

the class MapsFragment method onCreateView.

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (getArguments() != null) {
        isFragmentFromMainActivity = getArguments().getBoolean(ConstantStrings.IS_MAP_FRAGMENT_FROM_MAIN_ACTIVITY);
        fragmentLocationName = getArguments().getString(ConstantStrings.LOCATION_NAME);
    }
    if (isFragmentFromMainActivity) {
        setHasOptionsMenu(true);
    }
    View view = inflater.inflate(R.layout.fragment_map, container, false);
    if (savedInstanceState != null && savedInstanceState.getString(SEARCH) != null) {
        searchText = savedInstanceState.getString(SEARCH);
    }
    SupportMapFragment supportMapFragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map));
    supportMapFragment.getMapAsync(this);
    realmRepo.getLocations().addChangeListener((microlocations, orderedCollectionChangeSet) -> {
        mLocations.clear();
        for (Microlocation microlocation : microlocations) {
            mLocations.add(new MicrolocationClusterWrapper(microlocation));
        }
    });
    return view;
}
Also used : SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) SearchView(android.support.v7.widget.SearchView) View(android.view.View) Microlocation(org.fossasia.openevent.data.Microlocation)

Example 4 with Microlocation

use of org.fossasia.openevent.data.Microlocation in project open-event-android by fossasia.

the class GlobalSearchAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    switch(holder.getItemViewType()) {
        case TRACK:
            TrackViewHolder trackSearchHolder = (TrackViewHolder) holder;
            Track currentTrack = (Track) getItem(position);
            trackSearchHolder.bindTrack(currentTrack);
            break;
        case SPEAKER:
            SpeakerViewHolder speakerSearchHolder = (SpeakerViewHolder) holder;
            Speaker speaker = (Speaker) getItem(position);
            speakerSearchHolder.bindSpeaker(speaker);
            break;
        case LOCATION:
            LocationViewHolder locationSearchHolder = (LocationViewHolder) holder;
            Microlocation location = (Microlocation) getItem(position);
            locationSearchHolder.bindLocation(location);
            break;
        case DIVIDER:
            DividerViewHolder resultTypeViewHolder = (DividerViewHolder) holder;
            String headerItem = (String) getItem(position);
            resultTypeViewHolder.bindHeader(headerItem);
            break;
        case SESSION:
            DayScheduleViewHolder bookmarkTypeViewHolder = (DayScheduleViewHolder) holder;
            Session bookmarkItem = (Session) getItem(position);
            bookmarkTypeViewHolder.setSession(bookmarkItem);
            bookmarkTypeViewHolder.bindSession(realmRepo);
            break;
        default:
            // If viewType is none of the above then nothing is done
            break;
    }
}
Also used : SpeakerViewHolder(org.fossasia.openevent.core.speaker.SpeakerViewHolder) DividerViewHolder(org.fossasia.openevent.common.ui.recyclerview.DividerViewHolder) LocationViewHolder(org.fossasia.openevent.core.location.LocationViewHolder) DayScheduleViewHolder(org.fossasia.openevent.core.schedule.DayScheduleViewHolder) TrackViewHolder(org.fossasia.openevent.core.track.TrackViewHolder) Track(org.fossasia.openevent.data.Track) Microlocation(org.fossasia.openevent.data.Microlocation) Speaker(org.fossasia.openevent.data.Speaker) Session(org.fossasia.openevent.data.Session)

Example 5 with Microlocation

use of org.fossasia.openevent.data.Microlocation in project open-event-android by fossasia.

the class SessionDetailActivity method updateSession.

private void updateSession() {
    if (hasTrack)
        setUiColor();
    Timber.d("Updated");
    speakers.clear();
    speakers.addAll(session.getSpeakers());
    adapter.notifyDataSetChanged();
    updateFloatingIcon();
    Microlocation microlocation = session.getMicrolocation();
    if (microlocation != null) {
        location = microlocation.getName();
        text_room1.setText(microlocation.getName());
    } else {
        location = getString(R.string.location_not_decided);
        text_room1.setText(location);
    }
    SessionType type = session.getSessionType();
    if (type != null) {
        sessionType.setText(type.getName());
        typelayout.setVisibility(View.VISIBLE);
    }
    text_title.setText(title);
    if (TextUtils.isEmpty(session.getSubtitle())) {
        text_subtitle.setVisibility(View.GONE);
    }
    text_subtitle.setText(session.getSubtitle());
    if (hasTrack) {
        trackLabel.setVisibility(View.VISIBLE);
        text_track.setVisibility(View.VISIBLE);
        text_track.setText(trackName);
    } else {
        trackLabel.setVisibility(View.GONE);
        text_track.setVisibility(View.GONE);
    }
    String video_link = session.getVideoUrl();
    if (!Utils.isEmpty(video_link)) {
        playButton.setVisibility(View.VISIBLE);
        if (video_link.contains(ConstantStrings.YOUTUBE)) {
            youtubeThumbnail.setVisibility(View.VISIBLE);
            Picasso.with(this).load(ConstantStrings.YOUTUBE_URI_1 + video_link.substring(video_link.length() - 11) + ConstantStrings.YOUTUBE_URI_2).into(youtubeThumbnail);
        }
        playButton.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(video_link))));
    }
    String date = DateConverter.formatDateWithDefault(DateConverter.FORMAT_DATE_COMPLETE, session.getStartsAt());
    String startTime = DateConverter.formatDateWithDefault(DateConverter.FORMAT_12H, session.getStartsAt());
    String endTime = DateConverter.formatDateWithDefault(DateConverter.FORMAT_12H, session.getEndsAt());
    text_start_time.setText(startTime);
    text_end_time.setText(endTime);
    text_date.setText(date);
    Timber.d("Date: %s\nStart: %s\nEnd: %s", date, startTime, endTime);
    Views.setHtml(summary, session.getShortAbstract(), true);
    Views.setHtml(descrip, session.getLongAbstract(), true);
}
Also used : SessionType(org.fossasia.openevent.data.SessionType) Intent(android.content.Intent) Microlocation(org.fossasia.openevent.data.Microlocation)

Aggregations

Microlocation (org.fossasia.openevent.data.Microlocation)4 Intent (android.content.Intent)2 View (android.view.View)2 Session (org.fossasia.openevent.data.Session)2 Dialog (android.app.Dialog)1 ComponentName (android.content.ComponentName)1 Context (android.content.Context)1 DialogInterface (android.content.DialogInterface)1 Rect (android.graphics.Rect)1 ConnectivityManager (android.net.ConnectivityManager)1 NetworkInfo (android.net.NetworkInfo)1 Build (android.os.Build)1 Bundle (android.os.Bundle)1 Handler (android.os.Handler)1 Settings (android.provider.Settings)1 Nullable (android.support.annotation.Nullable)1 CustomTabsClient (android.support.customtabs.CustomTabsClient)1 CustomTabsServiceConnection (android.support.customtabs.CustomTabsServiceConnection)1 AppBarLayout (android.support.design.widget.AppBarLayout)1 CoordinatorLayout (android.support.design.widget.CoordinatorLayout)1