Search in sources :

Example 11 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project bitcoin-wallet by bitcoin-wallet.

the class NetworkMonitorActivity method onCreate.

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.network_monitor_content);
    final ViewPager2 pager = findViewById(R.id.network_monitor_pager);
    final ViewPagerTabs pagerTabs = findViewById(R.id.network_monitor_pager_tabs);
    pagerTabs.addTabLabels(TAB_LABELS);
    final boolean twoPanes = getResources().getBoolean(R.bool.network_monitor_two_panes);
    if (twoPanes) {
        final RecyclerView recyclerView = (RecyclerView) pager.getChildAt(0);
        recyclerView.setClipToPadding(false);
        recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
            final int width = recyclerView.getWidth();
            recyclerView.setPadding(0, 0, width / 2, 0);
            pager.setCurrentItem(0);
        });
        pager.setUserInputEnabled(false);
        pagerTabs.setMode(ViewPagerTabs.Mode.STATIC);
    } else {
        pager.setPageTransformer(new ZoomOutPageTransformer());
        pager.registerOnPageChangeCallback(pagerTabs.getPageChangeCallback());
        pagerTabs.setMode(ViewPagerTabs.Mode.DYNAMIC);
    }
    pager.setOffscreenPageLimit(1);
    pager.setAdapter(new PagerAdapter());
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) ViewPagerTabs(de.schildbach.wallet.util.ViewPagerTabs) RecyclerView(androidx.recyclerview.widget.RecyclerView) ZoomOutPageTransformer(de.schildbach.wallet.util.ZoomOutPageTransformer)

Example 12 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project collect by opendatakit.

the class DeleteSavedFormActivity method setUpViewPager.

private void setUpViewPager() {
    String[] tabNames = { getString(R.string.data), getString(R.string.forms) };
    ViewPager2 viewPager = findViewById(R.id.viewPager);
    TabLayout tabLayout = findViewById(R.id.tabLayout);
    viewPager.setAdapter(new DeleteFormsTabsAdapter(this, viewModel.isMatchExactlyEnabled()));
    new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> tab.setText(tabNames[position])).attach();
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) BlankFormsListViewModel(org.odk.collect.android.formmanagement.BlankFormsListViewModel) AppBarUtils(org.odk.collect.androidshared.utils.AppBarUtils) Bundle(android.os.Bundle) ViewModelProvider(androidx.lifecycle.ViewModelProvider) TabLayout(com.google.android.material.tabs.TabLayout) ViewPager2(androidx.viewpager2.widget.ViewPager2) DeleteFormsTabsAdapter(org.odk.collect.android.adapters.DeleteFormsTabsAdapter) Inject(javax.inject.Inject) DaggerUtils(org.odk.collect.android.injection.DaggerUtils) Configuration(android.content.res.Configuration) R(org.odk.collect.android.R) Toolbar(androidx.appcompat.widget.Toolbar) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator) TabLayout(com.google.android.material.tabs.TabLayout) DeleteFormsTabsAdapter(org.odk.collect.android.adapters.DeleteFormsTabsAdapter) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator)

Example 13 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project Signal-Android by signalapp.

the class WebRtcCallView method onFinishInflate.

@SuppressWarnings("CodeBlock2Expr")
@Override
protected void onFinishInflate() {
    super.onFinishInflate();
    audioToggle = findViewById(R.id.call_screen_speaker_toggle);
    audioToggleLabel = findViewById(R.id.call_screen_speaker_toggle_label);
    videoToggle = findViewById(R.id.call_screen_video_toggle);
    videoToggleLabel = findViewById(R.id.call_screen_video_toggle_label);
    micToggle = findViewById(R.id.call_screen_audio_mic_toggle);
    micToggleLabel = findViewById(R.id.call_screen_audio_mic_toggle_label);
    smallLocalRenderFrame = findViewById(R.id.call_screen_pip);
    smallLocalRender = findViewById(R.id.call_screen_small_local_renderer);
    largeLocalRenderFrame = findViewById(R.id.call_screen_large_local_renderer_frame);
    largeLocalRender = findViewById(R.id.call_screen_large_local_renderer);
    largeLocalRenderNoVideo = findViewById(R.id.call_screen_large_local_video_off);
    largeLocalRenderNoVideoAvatar = findViewById(R.id.call_screen_large_local_video_off_avatar);
    recipientName = findViewById(R.id.call_screen_recipient_name);
    status = findViewById(R.id.call_screen_status);
    incomingRingStatus = findViewById(R.id.call_screen_incoming_ring_status);
    parent = findViewById(R.id.call_screen);
    participantsParent = findViewById(R.id.call_screen_participants_parent);
    answer = findViewById(R.id.call_screen_answer_call);
    cameraDirectionToggle = findViewById(R.id.call_screen_camera_direction_toggle);
    cameraDirectionToggleLabel = findViewById(R.id.call_screen_camera_direction_toggle_label);
    ringToggle = findViewById(R.id.call_screen_audio_ring_toggle);
    ringToggleLabel = findViewById(R.id.call_screen_audio_ring_toggle_label);
    hangup = findViewById(R.id.call_screen_end_call);
    hangupLabel = findViewById(R.id.call_screen_end_call_label);
    answerWithoutVideo = findViewById(R.id.call_screen_answer_without_video);
    answerWithoutVideoLabel = findViewById(R.id.call_screen_answer_without_video_label);
    topGradient = findViewById(R.id.call_screen_header_gradient);
    footerGradient = findViewById(R.id.call_screen_footer_gradient);
    startCallControls = findViewById(R.id.call_screen_start_call_controls);
    callParticipantsPager = findViewById(R.id.call_screen_participants_pager);
    callParticipantsRecycler = findViewById(R.id.call_screen_participants_recycler);
    toolbar = findViewById(R.id.call_screen_header);
    startCall = findViewById(R.id.call_screen_start_call_start_call);
    errorButton = findViewById(R.id.call_screen_error_cancel);
    groupCallSpeakerHint = new Stub<>(findViewById(R.id.call_screen_group_call_speaker_hint));
    groupCallFullStub = new Stub<>(findViewById(R.id.group_call_call_full_view));
    showParticipantsGuideline = findViewById(R.id.call_screen_show_participants_guideline);
    topFoldGuideline = findViewById(R.id.fold_top_guideline);
    callScreenTopFoldGuideline = findViewById(R.id.fold_top_call_screen_guideline);
    foldParticipantCountWrapper = findViewById(R.id.fold_show_participants_menu_counter_wrapper);
    foldParticipantCount = findViewById(R.id.fold_show_participants_menu_counter);
    largeHeaderAvatar = findViewById(R.id.call_screen_header_avatar);
    statusBarGuideline = findViewById(R.id.call_screen_status_bar_guideline);
    fullScreenShade = findViewById(R.id.call_screen_full_shade);
    View decline = findViewById(R.id.call_screen_decline_call);
    View answerLabel = findViewById(R.id.call_screen_answer_call_label);
    View declineLabel = findViewById(R.id.call_screen_decline_call_label);
    callParticipantsPager.setPageTransformer(new MarginPageTransformer(ViewUtil.dpToPx(4)));
    pagerAdapter = new WebRtcCallParticipantsPagerAdapter(this::toggleControls);
    recyclerAdapter = new WebRtcCallParticipantsRecyclerAdapter();
    callParticipantsPager.setAdapter(pagerAdapter);
    callParticipantsRecycler.setAdapter(recyclerAdapter);
    callParticipantsPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {

        @Override
        public void onPageSelected(int position) {
            runIfNonNull(controlsListener, listener -> listener.onPageChanged(position == 0 ? CallParticipantsState.SelectedPage.GRID : CallParticipantsState.SelectedPage.FOCUSED));
        }
    });
    topViews.add(toolbar);
    topViews.add(topGradient);
    incomingCallViews.add(answer);
    incomingCallViews.add(answerLabel);
    incomingCallViews.add(decline);
    incomingCallViews.add(declineLabel);
    incomingCallViews.add(footerGradient);
    incomingCallViews.add(incomingRingStatus);
    adjustableMarginsSet.add(micToggle);
    adjustableMarginsSet.add(cameraDirectionToggle);
    adjustableMarginsSet.add(videoToggle);
    adjustableMarginsSet.add(audioToggle);
    audioToggle.setOnAudioOutputChangedListener(outputMode -> {
        runIfNonNull(controlsListener, listener -> listener.onAudioOutputChanged(outputMode));
    });
    videoToggle.setOnCheckedChangeListener((v, isOn) -> {
        runIfNonNull(controlsListener, listener -> listener.onVideoChanged(isOn));
    });
    micToggle.setOnCheckedChangeListener((v, isOn) -> {
        runIfNonNull(controlsListener, listener -> listener.onMicChanged(isOn));
    });
    ringToggle.setOnCheckedChangeListener((v, isOn) -> {
        runIfNonNull(controlsListener, listener -> listener.onRingGroupChanged(isOn, ringToggle.isActivated()));
    });
    cameraDirectionToggle.setOnClickListener(v -> runIfNonNull(controlsListener, ControlsListener::onCameraDirectionChanged));
    hangup.setOnClickListener(v -> runIfNonNull(controlsListener, ControlsListener::onEndCallPressed));
    decline.setOnClickListener(v -> runIfNonNull(controlsListener, ControlsListener::onDenyCallPressed));
    answer.setOnClickListener(v -> runIfNonNull(controlsListener, ControlsListener::onAcceptCallPressed));
    answerWithoutVideo.setOnClickListener(v -> runIfNonNull(controlsListener, ControlsListener::onAcceptCallWithVoiceOnlyPressed));
    pictureInPictureGestureHelper = PictureInPictureGestureHelper.applyTo(smallLocalRenderFrame);
    pictureInPictureExpansionHelper = new PictureInPictureExpansionHelper();
    smallLocalRenderFrame.setOnClickListener(v -> {
        if (controlsListener != null) {
            controlsListener.onLocalPictureInPictureClicked();
        }
    });
    startCall.setOnClickListener(v -> {
        if (controlsListener != null) {
            startCall.setEnabled(false);
            controlsListener.onStartCall(videoToggle.isChecked());
        }
    });
    ColorMatrix greyScaleMatrix = new ColorMatrix();
    greyScaleMatrix.setSaturation(0);
    largeLocalRenderNoVideoAvatar.setAlpha(0.6f);
    largeLocalRenderNoVideoAvatar.setColorFilter(new ColorMatrixColorFilter(greyScaleMatrix));
    errorButton.setOnClickListener(v -> {
        if (controlsListener != null) {
            controlsListener.onCancelStartCall();
        }
    });
    rotatableControls.add(hangup);
    rotatableControls.add(answer);
    rotatableControls.add(answerWithoutVideo);
    rotatableControls.add(audioToggle);
    rotatableControls.add(micToggle);
    rotatableControls.add(videoToggle);
    rotatableControls.add(cameraDirectionToggle);
    rotatableControls.add(decline);
    rotatableControls.add(smallLocalRender.findViewById(R.id.call_participant_mic_muted));
    rotatableControls.add(ringToggle);
    largeHeaderConstraints = new ConstraintSet();
    largeHeaderConstraints.clone(getContext(), R.layout.webrtc_call_view_header_large);
    smallHeaderConstraints = new ConstraintSet();
    smallHeaderConstraints.clone(getContext(), R.layout.webrtc_call_view_header_small);
}
Also used : Rect(android.graphics.Rect) NonNull(androidx.annotation.NonNull) FrameLayout(android.widget.FrameLayout) ImageView(android.widget.ImageView) TransitionManager(androidx.transition.TransitionManager) ProfileContactPhoto(org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto) ViewUtil(org.thoughtcrime.securesms.util.ViewUtil) CallParticipant(org.thoughtcrime.securesms.events.CallParticipant) R(org.thoughtcrime.securesms.R) AttributeSet(android.util.AttributeSet) RecipientId(org.thoughtcrime.securesms.recipients.RecipientId) SimpleAnimationListener(org.thoughtcrime.securesms.mediasend.SimpleAnimationListener) AccessibleToggleButton(org.thoughtcrime.securesms.components.AccessibleToggleButton) View(android.view.View) Recipient(org.thoughtcrime.securesms.recipients.Recipient) Animation(android.view.animation.Animation) RecyclerView(androidx.recyclerview.widget.RecyclerView) ColorMatrix(android.graphics.ColorMatrix) ResizeAnimation(org.thoughtcrime.securesms.animation.ResizeAnimation) MarginPageTransformer(androidx.viewpager2.widget.MarginPageTransformer) Set(java.util.Set) ColorMatrixColorFilter(android.graphics.ColorMatrixColorFilter) SetUtil(org.thoughtcrime.securesms.util.SetUtil) ViewGroup(android.view.ViewGroup) Sets(com.google.common.collect.Sets) Consumer(androidx.core.util.Consumer) TransitionSet(androidx.transition.TransitionSet) List(java.util.List) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) ConstraintLayout(androidx.constraintlayout.widget.ConstraintLayout) Transition(androidx.transition.Transition) GlideApp(org.thoughtcrime.securesms.mms.GlideApp) Context(android.content.Context) AppCompatResources(androidx.appcompat.content.res.AppCompatResources) BlurTransformation(org.thoughtcrime.securesms.util.BlurTransformation) RendererCommon(org.webrtc.RendererCommon) ViewPager2(androidx.viewpager2.widget.ViewPager2) CallParticipantsViewState(org.thoughtcrime.securesms.webrtc.CallParticipantsViewState) AutoTransition(androidx.transition.AutoTransition) CenterCrop(com.bumptech.glide.load.resource.bitmap.CenterCrop) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) CameraState(org.thoughtcrime.securesms.ringrtc.CameraState) MaterialButton(com.google.android.material.button.MaterialButton) HangupMessage(org.whispersystems.signalservice.api.messages.calls.HangupMessage) DiskCacheStrategy(com.bumptech.glide.load.engine.DiskCacheStrategy) AvatarImageView(org.thoughtcrime.securesms.components.AvatarImageView) Stub(org.thoughtcrime.securesms.util.views.Stub) WebRtcViewModel(org.thoughtcrime.securesms.events.WebRtcViewModel) Point(android.graphics.Point) ConstraintSet(androidx.constraintlayout.widget.ConstraintSet) ThrottledDebouncer(org.thoughtcrime.securesms.util.ThrottledDebouncer) Guideline(androidx.constraintlayout.widget.Guideline) ColorMatrix(android.graphics.ColorMatrix) ConstraintSet(androidx.constraintlayout.widget.ConstraintSet) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) AvatarImageView(org.thoughtcrime.securesms.components.AvatarImageView) Point(android.graphics.Point) ViewPager2(androidx.viewpager2.widget.ViewPager2) ColorMatrixColorFilter(android.graphics.ColorMatrixColorFilter) MarginPageTransformer(androidx.viewpager2.widget.MarginPageTransformer)

Example 14 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project Signal-Android by signalapp.

the class ManagePendingAndRequestingMembersActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState, boolean ready) {
    super.onCreate(savedInstanceState, ready);
    setContentView(R.layout.group_pending_and_requesting_member_activity);
    if (savedInstanceState == null) {
        GroupId.V2 groupId = GroupId.parseOrThrow(getIntent().getStringExtra(GROUP_ID)).requireV2();
        ViewPager2 viewPager = findViewById(R.id.pending_and_requesting_pager);
        TabLayout tabLayout = findViewById(R.id.pending_and_requesting_tabs);
        viewPager.setAdapter(new ViewPagerAdapter(this, groupId));
        new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
            switch(position) {
                case 0:
                    tab.setText(R.string.PendingMembersActivity_requests);
                    break;
                case 1:
                    tab.setText(R.string.PendingMembersActivity_invites);
                    break;
                default:
                    throw new AssertionError();
            }
        }).attach();
    }
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    requireSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) Context(android.content.Context) Bundle(android.os.Bundle) TabLayout(com.google.android.material.tabs.TabLayout) PendingMemberInvitesFragment(org.thoughtcrime.securesms.groups.ui.invitesandrequests.invited.PendingMemberInvitesFragment) NonNull(androidx.annotation.NonNull) Intent(android.content.Intent) ViewPager2(androidx.viewpager2.widget.ViewPager2) RequestingMembersFragment(org.thoughtcrime.securesms.groups.ui.invitesandrequests.requesting.RequestingMembersFragment) R(org.thoughtcrime.securesms.R) FragmentActivity(androidx.fragment.app.FragmentActivity) FragmentStateAdapter(androidx.viewpager2.adapter.FragmentStateAdapter) DynamicTheme(org.thoughtcrime.securesms.util.DynamicTheme) PassphraseRequiredActivity(org.thoughtcrime.securesms.PassphraseRequiredActivity) DynamicNoActionBarTheme(org.thoughtcrime.securesms.util.DynamicNoActionBarTheme) Fragment(androidx.fragment.app.Fragment) GroupId(org.thoughtcrime.securesms.groups.GroupId) Toolbar(androidx.appcompat.widget.Toolbar) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator) TabLayout(com.google.android.material.tabs.TabLayout) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator) GroupId(org.thoughtcrime.securesms.groups.GroupId) Toolbar(androidx.appcompat.widget.Toolbar)

Example 15 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project GestureViews by alexvasilkov.

the class DemoActivity method initPager.

/**
 * Initializing pager and fullscreen mode.
 */
private void initPager() {
    // Setting up pager adapter
    pagerAdapter = new PhotoPagerAdapter(getSettingsController());
    pagerListener = new ViewPager2.OnPageChangeCallback() {

        @Override
        public void onPageSelected(int position) {
            onPhotoInPagerSelected(position);
        }
    };
    views.pager.setAdapter(pagerAdapter);
    views.pager.registerOnPageChangeCallback(pagerListener);
    views.pager.setPageTransformer(new DepthPageTransformer());
    // Setting up pager toolbar
    views.pagerToolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp);
    views.pagerToolbar.setNavigationOnClickListener(view -> onBackPressed());
    // Enabling immersive mode by clicking on full screen image
    pagerAdapter.setImageClickListener(() -> {
        if (!listAnimator.isLeaving()) {
            // Toggle immersive mode
            showSystemUi(!isSystemUiShown());
        }
    });
    DecorUtils.onInsetsChanged(views.pagerToolbar, () -> {
        float alpha = isSystemUiShown() ? 1f : 0f;
        views.pagerToolbar.animate().alpha(alpha);
        views.pagerTitle.animate().alpha(alpha);
    });
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) DepthPageTransformer(com.alexvasilkov.gestures.commons.DepthPageTransformer) PhotoPagerAdapter(com.alexvasilkov.gestures.sample.demo.adapter.PhotoPagerAdapter) SuppressLint(android.annotation.SuppressLint)

Aggregations

ViewPager2 (androidx.viewpager2.widget.ViewPager2)23 View (android.view.View)9 NonNull (androidx.annotation.NonNull)9 Bundle (android.os.Bundle)8 Fragment (androidx.fragment.app.Fragment)8 TabLayout (com.google.android.material.tabs.TabLayout)8 RecyclerView (androidx.recyclerview.widget.RecyclerView)7 FragmentStateAdapter (androidx.viewpager2.adapter.FragmentStateAdapter)7 TabLayoutMediator (com.google.android.material.tabs.TabLayoutMediator)7 ViewGroup (android.view.ViewGroup)6 Context (android.content.Context)5 Toolbar (androidx.appcompat.widget.Toolbar)5 R (org.thoughtcrime.securesms.R)4 Intent (android.content.Intent)3 LayoutInflater (android.view.LayoutInflater)3 MenuItem (android.view.MenuItem)3 TextView (android.widget.TextView)3 MainActivity (de.danoeh.antennapod.activity.MainActivity)3 ColorMatrix (android.graphics.ColorMatrix)2 ColorMatrixColorFilter (android.graphics.ColorMatrixColorFilter)2