Search in sources :

Example 1 with Speaker

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

the class SpeakersListAdapter method getHeaderId.

@Override
public long getHeaderId(int position) {
    sortType = SharedPreferencesUtil.getInt(ConstantStrings.PREF_SORT_SPEAKER, SORTED_BY_NAME);
    Speaker current = getItem(position);
    String name = current.getName();
    String organisation = current.getOrganisation();
    String country = current.getCountry();
    if (sortType == SORTED_BY_NAME)
        return name.toUpperCase().charAt(0);
    else if (sortType == SORTED_BY_ORGANIZATION) {
        if (!organizations.contains(organisation)) {
            organizations.add(organisation);
        }
        return organizations.indexOf(organisation);
    } else {
        if (!countries.contains(country)) {
            countries.add(country);
        }
        return countries.indexOf(country);
    }
}
Also used : Speaker(org.fossasia.openevent.data.Speaker)

Example 2 with Speaker

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

the class SpeakersListAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(SpeakerViewHolder holder, final int position) {
    Speaker current = getItem(position);
    String organisation = Utils.checkStringEmpty(current.getOrganisation());
    String country = Utils.checkStringEmpty(current.getCountry());
    // adding distinct org and country (note size of array will never be greater than 2)
    if (!TextUtils.isEmpty(organisation)) {
        if (distinctOrganizations.isEmpty()) {
            distinctOrganizations.add(organisation);
        } else if (distinctOrganizations.size() == 1 && (!organisation.equals(distinctOrganizations.get(0)))) {
            distinctOrganizations.add(organisation);
        }
    }
    if (!Utils.isEmpty(country)) {
        if (distinctCountry.isEmpty()) {
            distinctCountry.add(country);
        } else if (distinctCountry.size() == 1 && (!country.equals(distinctCountry.get(0)))) {
            distinctCountry.add(country);
        }
    }
    holder.bindSpeaker(current);
}
Also used : Speaker(org.fossasia.openevent.data.Speaker)

Example 3 with Speaker

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

the class SessionDetailActivity method onOptionsItemSelected.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
        case R.id.action_map:
            showMap = true;
            // Hide all the views except the frame layout and appbar layout
            scrollView.setVisibility(View.GONE);
            fabSessionBookmark.setVisibility(View.GONE);
            menu.setGroupVisible(R.id.menu_group_session_detail, false);
            text_title.setText(" ");
            appBarLayout.setExpanded(false);
            collapsingToolbarLayout.setTitle(location);
            mapFragment.setVisibility(View.VISIBLE);
            Bundle bundle = new Bundle();
            bundle.putBoolean(ConstantStrings.IS_MAP_FRAGMENT_FROM_MAIN_ACTIVITY, false);
            bundle.putString(ConstantStrings.LOCATION_NAME, location);
            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            Fragment mapFragment = StrategyRegistry.getInstance().getMapModuleStrategy().getMapModuleFactory().provideMapModule().provideMapFragment();
            mapFragment.setArguments(bundle);
            fragmentTransaction.replace(R.id.content_frame_session, mapFragment, FRAGMENT_TAG_REST).addToBackStack(null).commit();
            return true;
        case R.id.action_share:
            StringBuilder speakersNameBuilder = new StringBuilder();
            boolean firstSpeaker = true;
            for (Speaker speaker : session.getSpeakers()) {
                if (!firstSpeaker) {
                    speakersNameBuilder.append(", ");
                }
                speakersNameBuilder.append(speaker.getName());
                firstSpeaker = false;
            }
            String startTime = DateConverter.formatDateWithDefault(DateConverter.FORMAT_DATE_COMPLETE, session.getStartsAt());
            String endTime = DateConverter.formatDateWithDefault(DateConverter.FORMAT_DATE_COMPLETE, session.getEndsAt());
            String shareText = String.format(getResources().getString(R.string.session_track_details) + " %s \n" + getResources().getString(R.string.title_details) + " %s \n" + getResources().getString(R.string.start_time_details) + " %s \n" + getResources().getString(R.string.end_time_details) + " %s \n" + getResources().getString(R.string.speakers_details) + " %s \n" + getResources().getString(R.string.location_details) + " %s ", trackName, title, startTime, endTime, speakersNameBuilder.toString(), location) + "\n" + getResources().getString(R.string.description_details) + " " + Views.fromHtml(session.getShortAbstract());
            Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_TEXT, shareText);
            sendIntent.setType("text/plain");
            startActivity(Intent.createChooser(sendIntent, getString(R.string.share_links)));
            return true;
        case R.id.action_add_to_calendar:
            Intent intent = new Intent(Intent.ACTION_INSERT);
            intent.setType("vnd.android.cursor.item/event");
            intent.putExtra(CalendarContract.Events.TITLE, title);
            intent.putExtra(CalendarContract.Events.DESCRIPTION, Html.fromHtml(session.getShortAbstract()).toString());
            intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, DateConverter.formatDateWithDefault(DateConverter.FORMAT_24H, session.getStartsAt()));
            intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, DateConverter.formatDateWithDefault(DateConverter.FORMAT_24H, session.getEndsAt()));
            if (intent.resolveActivity(getPackageManager()) != null) {
                startActivity(intent);
            } else {
                Toast.makeText(this, "This device does not have a calendar app installed", Toast.LENGTH_SHORT).show();
            }
        default:
    }
    return super.onOptionsItemSelected(item);
}
Also used : FragmentManager(android.support.v4.app.FragmentManager) FragmentTransaction(android.support.v4.app.FragmentTransaction) Bundle(android.os.Bundle) Intent(android.content.Intent) Fragment(android.support.v4.app.Fragment) Speaker(org.fossasia.openevent.data.Speaker)

Example 4 with Speaker

use of org.fossasia.openevent.data.Speaker 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 5 with Speaker

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

the class SpeakerViewHolder method bindSpeaker.

public void bindSpeaker(Speaker speaker) {
    this.speaker = speaker;
    String thumbnail = Utils.parseImageUri(this.speaker.getThumbnailImageUrl());
    String name = Utils.checkStringEmpty(speaker.getName());
    if (thumbnail == null)
        thumbnail = Utils.parseImageUri(this.speaker.getPhotoUrl());
    final Palette.PaletteAsyncListener paletteAsyncListener = palette -> {
        Palette.Swatch swatch = palette.getVibrantSwatch();
        if (speakerTextualInfo != null) {
            if (swatch != null) {
                // bitmap has vibrant swatch profile
                speakerTextualInfo.setBackgroundColor(swatch.getRgb());
            } else {
                Palette.Swatch swatch2 = palette.getDarkMutedSwatch();
                if (swatch2 != null) {
                    // bitmap has dark muted swatch profile
                    speakerTextualInfo.setBackgroundColor(swatch2.getRgb());
                } else {
                    speakerTextualInfo.setBackgroundColor(ContextCompat.getColor(context, R.color.color_primary_dark));
                }
            }
        }
    };
    RequestCreator requestCreator = StrategyRegistry.getInstance().getHttpStrategy().getPicassoWithCache().load(thumbnail);
    TextDrawable drawable;
    if (isImageCircle) {
        requestCreator.transform(new CircleTransform());
        drawable = Views.getTextDrawableBuilder().round().build(Utils.getNameLetters(name), ColorGenerator.MATERIAL.getColor(name));
    } else {
        drawable = Views.getTextDrawableBuilder().buildRect(Utils.getNameLetters(name), ColorGenerator.MATERIAL.getColor(name));
    }
    final Target target = new Target() {

        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            speakerImage.setImageBitmap(bitmap);
            if (speakerTextualInfo != null) {
                Palette.from(bitmap).generate(paletteAsyncListener);
            }
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
            speakerImage.setImageDrawable(drawable);
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {
            speakerImage.setImageDrawable(drawable);
        }
    };
    requestCreator.into(target);
    setStringField(speakerName, name);
    setStringField(speakerDesignation, String.format("%s %s", speaker.getPosition(), speaker.getOrganisation()));
    setStringField(speakerCountry, speaker.getCountry());
}
Also used : TextDrawable(com.amulyakhare.textdrawable.TextDrawable) Context(android.content.Context) LinearLayout(android.widget.LinearLayout) Bundle(android.os.Bundle) Palette(android.support.v7.graphics.Palette) ButterKnife(butterknife.ButterKnife) Utils(org.fossasia.openevent.common.utils.Utils) ImageView(android.widget.ImageView) Intent(android.content.Intent) Drawable(android.graphics.drawable.Drawable) BindView(butterknife.BindView) Picasso(com.squareup.picasso.Picasso) ActivityOptions(android.app.ActivityOptions) Views(org.fossasia.openevent.common.ui.Views) Target(com.squareup.picasso.Target) View(android.view.View) CircleTransform(org.fossasia.openevent.common.ui.image.CircleTransform) Speaker(org.fossasia.openevent.data.Speaker) R(org.fossasia.openevent.R) StrategyRegistry(org.fossasia.openevent.config.StrategyRegistry) RequestCreator(com.squareup.picasso.RequestCreator) ContextCompat(android.support.v4.content.ContextCompat) TextUtils(android.text.TextUtils) ColorGenerator(com.amulyakhare.textdrawable.util.ColorGenerator) Timber(timber.log.Timber) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) Bitmap(android.graphics.Bitmap) Nullable(android.support.annotation.Nullable) Activity(android.app.Activity) TextDrawable(com.amulyakhare.textdrawable.TextDrawable) Palette(android.support.v7.graphics.Palette) Target(com.squareup.picasso.Target) Bitmap(android.graphics.Bitmap) TextDrawable(com.amulyakhare.textdrawable.TextDrawable) Drawable(android.graphics.drawable.Drawable) CircleTransform(org.fossasia.openevent.common.ui.image.CircleTransform) RequestCreator(com.squareup.picasso.RequestCreator)

Aggregations

Speaker (org.fossasia.openevent.data.Speaker)7 Intent (android.content.Intent)3 Bundle (android.os.Bundle)3 Context (android.content.Context)2 Nullable (android.support.annotation.Nullable)2 Fragment (android.support.v4.app.Fragment)2 FragmentManager (android.support.v4.app.FragmentManager)2 TextUtils (android.text.TextUtils)2 View (android.view.View)2 ImageView (android.widget.ImageView)2 BindView (butterknife.BindView)2 ButterKnife (butterknife.ButterKnife)2 R (org.fossasia.openevent.R)2 Utils (org.fossasia.openevent.common.utils.Utils)2 StrategyRegistry (org.fossasia.openevent.config.StrategyRegistry)2 Timber (timber.log.Timber)2 Activity (android.app.Activity)1 ActivityOptions (android.app.ActivityOptions)1 Dialog (android.app.Dialog)1 ComponentName (android.content.ComponentName)1