Search in sources :

Example 6 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project AntennaPod by AntennaPod.

the class EpisodesFragment method onCreateView.

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View rootView = inflater.inflate(R.layout.pager_fragment, container, false);
    Toolbar toolbar = rootView.findViewById(R.id.toolbar);
    toolbar.setTitle(R.string.episodes_label);
    toolbar.inflateMenu(R.menu.episodes);
    displayUpArrow = getParentFragmentManager().getBackStackEntryCount() != 0;
    if (savedInstanceState != null) {
        displayUpArrow = savedInstanceState.getBoolean(KEY_UP_ARROW);
    }
    ((MainActivity) getActivity()).setupToolbarToggle(toolbar, displayUpArrow);
    ViewPager2 viewPager = rootView.findViewById(R.id.viewpager);
    viewPager.setAdapter(new EpisodesPagerAdapter(this));
    viewPager.setOffscreenPageLimit(2);
    super.setupPagedToolbar(toolbar, viewPager);
    // Give the TabLayout the ViewPager
    tabLayout = rootView.findViewById(R.id.sliding_tabs);
    new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
        switch(position) {
            case POS_NEW_EPISODES:
                tab.setText(R.string.new_episodes_label);
                break;
            case POS_ALL_EPISODES:
                tab.setText(R.string.all_episodes_short_label);
                break;
            case POS_FAV_EPISODES:
                tab.setText(R.string.favorite_episodes_label);
                break;
            default:
                break;
        }
    }).attach();
    // restore our last position
    SharedPreferences prefs = getActivity().getSharedPreferences(TAG, Context.MODE_PRIVATE);
    int lastPosition = prefs.getInt(PREF_LAST_TAB_POSITION, 0);
    viewPager.setCurrentItem(lastPosition, false);
    return rootView;
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) Context(android.content.Context) Bundle(android.os.Bundle) TabLayout(com.google.android.material.tabs.TabLayout) LayoutInflater(android.view.LayoutInflater) NonNull(androidx.annotation.NonNull) R(de.danoeh.antennapod.R) ViewPager2(androidx.viewpager2.widget.ViewPager2) ViewGroup(android.view.ViewGroup) FragmentStateAdapter(androidx.viewpager2.adapter.FragmentStateAdapter) MainActivity(de.danoeh.antennapod.activity.MainActivity) SharedPreferences(android.content.SharedPreferences) Fragment(androidx.fragment.app.Fragment) View(android.view.View) Toolbar(androidx.appcompat.widget.Toolbar) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator) SharedPreferences(android.content.SharedPreferences) TabLayoutMediator(com.google.android.material.tabs.TabLayoutMediator) MainActivity(de.danoeh.antennapod.activity.MainActivity) View(android.view.View) Toolbar(androidx.appcompat.widget.Toolbar)

Example 7 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project Android-skin-support by ximsfei.

the class MainActivity method initViews.

private void initViews() {
    mFragments = new ArrayList<>();
    mFragments.add(new HomeFragment());
    mFragments.add(new DiscoveryFragment());
    mFragments.add(new MineFragment());
    mContainerVp.setAdapter(new FragmentStateAdapter(this) {

        @NonNull
        @Override
        public Fragment createFragment(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getItemCount() {
            return mFragments.size();
        }
    });
    mContainerVp.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {

        @Override
        public void onPageSelected(int position) {
            mMenuBnv.getMenu().getItem(position).setChecked(true);
            setTitle(mMenuBnv.getMenu().getItem(position).getTitle());
        }
    });
    mMenuBnv.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch(item.getItemId()) {
                case R.id.bnv_home:
                    mContainerVp.setCurrentItem(0);
                    return true;
                case R.id.bnv_discovery:
                    mContainerVp.setCurrentItem(1);
                    return true;
                case R.id.bnv_mine:
                    mContainerVp.setCurrentItem(2);
                    return true;
            }
            return false;
        }
    });
}
Also used : MineFragment(skin.support.mobile.demo.fragment.MineFragment) MenuItem(android.view.MenuItem) FragmentStateAdapter(androidx.viewpager2.adapter.FragmentStateAdapter) HomeFragment(skin.support.mobile.demo.fragment.HomeFragment) Fragment(androidx.fragment.app.Fragment) HomeFragment(skin.support.mobile.demo.fragment.HomeFragment) DiscoveryFragment(skin.support.mobile.demo.fragment.DiscoveryFragment) MineFragment(skin.support.mobile.demo.fragment.MineFragment) ViewPager2(androidx.viewpager2.widget.ViewPager2) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) NonNull(androidx.annotation.NonNull) DiscoveryFragment(skin.support.mobile.demo.fragment.DiscoveryFragment)

Example 8 with ViewPager2

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

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 9 with ViewPager2

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

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 10 with ViewPager2

use of androidx.viewpager2.widget.ViewPager2 in project CircleIndicator by ongakuer.

the class ViewPager2Fragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    mAdapter = new SampleRecyclerAdapter(5);
    ViewPager2 viewpager = view.findViewById(R.id.viewpager);
    viewpager.setAdapter(mAdapter);
    // CircleIndicator3 for RecyclerView
    CircleIndicator3 indicator = view.findViewById(R.id.indicator);
    indicator.setViewPager(viewpager);
    // CurrentItem
    viewpager.setCurrentItem(2, false);
    // Observe Data Change
    mAdapter.registerAdapterDataObserver(indicator.getAdapterDataObserver());
    view.findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mAdapter.add();
        }
    });
    view.findViewById(R.id.remove).setOnClickListener(v -> {
        mAdapter.remove();
    });
}
Also used : ViewPager2(androidx.viewpager2.widget.ViewPager2) CircleIndicator3(me.relex.circleindicator.CircleIndicator3) SampleRecyclerAdapter(me.relex.circleindicator.sample.SampleRecyclerAdapter) View(android.view.View)

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