Example usage for android.support.v4.view ViewPager getAdapter

List of usage examples for android.support.v4.view ViewPager getAdapter

Introduction

In this page you can find the example usage for android.support.v4.view ViewPager getAdapter.

Prototype

public PagerAdapter getAdapter() 

Source Link

Document

Retrieve the current adapter supplying pages.

Usage

From source file:dev.journey.uitoolkit.view.FlexibleTabLayout.java

/**
 * The one-stop shop for setting up this {@link FlexibleTabLayout} with a {@link ViewPager}.
 * <p/>/*from w  w  w .  j a va  2 s  .c o  m*/
 * <p>This method will:
 * <ul>
 * <li>Add a {@link ViewPager.OnPageChangeListener} that will forward events to
 * this FlexibleTabLayout.</li>
 * <li>Populate the FlexibleTabLayout's tabs from the ViewPager's {@link PagerAdapter}.</li>
 * <li>Set our {@link FlexibleTabLayout.OnTabSelectedListener} which will forward
 * selected events to the ViewPager</li>
 * </ul>
 * </p>
 *
 * @see #setTabsFromPagerAdapter(PagerAdapter)
 * @see FlexibleTabLayoutOnPageChangeListener
 * @see ViewPagerOnTabSelectedListener
 */
public void setupWithViewPager(@NonNull ViewPager viewPager, int layoutResId, OnTabSelectedListener listener) {
    final PagerAdapter adapter = viewPager.getAdapter();
    mCustomViewLayoutId = layoutResId;
    if (adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    }
    // Now we'll add a tab selected listener to set ViewPager's current item
    setOnTabSelectedListener(listener);

    // First we'll add Tabs, using the adapter's page titles
    setTabsFromPagerAdapter(adapter);

    // Now we'll add our page change listener to the ViewPager
    viewPager.addOnPageChangeListener(new FlexibleTabLayoutOnPageChangeListener(this));

    // Make sure we reflect the currently set ViewPager item
    if (adapter.getCount() > 0) {
        final int curItem = viewPager.getCurrentItem();
        if (getSelectedTabPosition() != curItem) {
            selectTab(getTabAt(curItem));
        }
    }
}

From source file:org.mariotaku.twidere.activity.MediaViewerActivity.java

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    final ViewPager viewPager = findViewPager();
    final PagerAdapter adapter = viewPager.getAdapter();
    final int currentItem = viewPager.getCurrentItem();
    if (currentItem < 0 || currentItem >= adapter.getCount())
        return false;
    final Object object = adapter.instantiateItem(viewPager, currentItem);
    if (!(object instanceof MediaViewerFragment))
        return false;
    if (object instanceof CacheDownloadMediaViewerFragment) {
        CacheDownloadMediaViewerFragment f = (CacheDownloadMediaViewerFragment) object;
        final boolean running = f.getLoaderManager().hasRunningLoaders();
        final boolean downloaded = f.hasDownloadedData();
        MenuUtils.setMenuItemAvailability(menu, R.id.refresh, !running && !downloaded);
        MenuUtils.setMenuItemAvailability(menu, R.id.share, !running && downloaded);
        MenuUtils.setMenuItemAvailability(menu, R.id.save, !running && downloaded);
    } else {//  ww  w. j  ava 2 s.  c  o m
        MenuUtils.setMenuItemAvailability(menu, R.id.refresh, false);
        MenuUtils.setMenuItemAvailability(menu, R.id.share, true);
        MenuUtils.setMenuItemAvailability(menu, R.id.save, false);
    }
    return true;
}

From source file:org.mariotaku.twidere.activity.MediaViewerActivity.java

protected void saveToStorage() {
    if (mSaveToStoragePosition == -1)
        return;/* w w  w .  j a v  a  2s . c o  m*/
    final ViewPager viewPager = findViewPager();
    final PagerAdapter adapter = viewPager.getAdapter();
    final Object object = adapter.instantiateItem(viewPager, mSaveToStoragePosition);
    if (!(object instanceof CacheDownloadMediaViewerFragment))
        return;
    final CacheDownloadMediaViewerFragment f = (CacheDownloadMediaViewerFragment) object;
    final CacheDownloadLoader.Result result = f.getDownloadResult();
    if (result == null)
        return;
    final Uri cacheUri = result.cacheUri;
    final boolean hasMedia = cacheUri != null;
    if (!hasMedia)
        return;
    SaveFileTask task;
    if (f instanceof ImagePageFragment) {
        task = SaveMediaToGalleryTask.create(this, cacheUri, CacheProvider.Type.IMAGE);
    } else if (f instanceof VideoPageFragment) {
        task = SaveMediaToGalleryTask.create(this, cacheUri, CacheProvider.Type.VIDEO);
    } else if (f instanceof GifPageFragment) {
        task = SaveMediaToGalleryTask.create(this, cacheUri, CacheProvider.Type.IMAGE);
    } else {
        throw new UnsupportedOperationException();
    }
    AsyncTaskUtils.executeTask(task);
}

From source file:org.mariotaku.twidere.activity.MediaViewerActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    final ViewPager viewPager = findViewPager();
    final PagerAdapter adapter = viewPager.getAdapter();
    final int currentItem = viewPager.getCurrentItem();
    if (currentItem < 0 || currentItem >= adapter.getCount())
        return false;
    final Object object = adapter.instantiateItem(viewPager, currentItem);
    if (!(object instanceof MediaViewerFragment))
        return false;
    switch (item.getItemId()) {
    case R.id.refresh: {
        if (object instanceof CacheDownloadMediaViewerFragment) {
            final CacheDownloadMediaViewerFragment fragment = (CacheDownloadMediaViewerFragment) object;
            fragment.startLoading(true);
            fragment.showProgress(true, 0);
            fragment.setMediaViewVisible(false);
        }/*from w w w  . j  ava2 s.  c om*/
        return true;
    }
    case R.id.share: {
        if (object instanceof CacheDownloadMediaViewerFragment) {
            requestAndShareMedia(currentItem);
        } else {
            final ParcelableMedia media = getMedia()[currentItem];
            final Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, media.url);
            startActivity(Intent.createChooser(intent, getString(R.string.share)));
        }
        return true;
    }
    case R.id.save: {
        requestAndSaveToStorage(currentItem);
        return true;
    }
    case R.id.open_in_browser: {
        final ParcelableMedia media = getMedia()[currentItem];
        try {
            final Uri uri = Uri.parse(media.url);
            final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setPackage(IntentUtils.getDefaultBrowserPackage(this, uri, true));
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            // TODO show error, or improve app url
        }
        return true;
    }
    case android.R.id.home: {
        finish();
        return true;
    }
    }
    return super.onOptionsItemSelected(item);
}

From source file:org.mariotaku.twidere.activity.MediaViewerActivity.java

protected void shareMedia() {
    if (mShareMediaPosition == -1)
        return;//from ww  w  . j a  v a2  s  .  c o  m
    final ViewPager viewPager = findViewPager();
    final PagerAdapter adapter = viewPager.getAdapter();
    final Object object = adapter.instantiateItem(viewPager, mShareMediaPosition);
    if (!(object instanceof CacheDownloadMediaViewerFragment))
        return;
    CacheDownloadLoader.Result result = ((CacheDownloadMediaViewerFragment) object).getDownloadResult();
    if (result == null || result.cacheUri == null) {
        // TODO show error
        return;
    }
    final File destination = ShareProvider.getFilesDir(this);
    if (destination == null)
        return;
    String type;
    if (object instanceof VideoPageFragment) {
        type = CacheProvider.Type.VIDEO;
    } else if (object instanceof ImagePageFragment) {
        type = CacheProvider.Type.IMAGE;
    } else if (object instanceof GifPageFragment) {
        type = CacheProvider.Type.IMAGE;
    } else {
        throw new UnsupportedOperationException("Unsupported fragment " + object);
    }
    final SaveFileTask task = new SaveFileTask(this, result.cacheUri, destination,
            new CacheProvider.CacheFileTypeCallback(this, type)) {
        private static final String PROGRESS_FRAGMENT_TAG = "progress";

        @Override
        protected void dismissProgress() {
            final IExtendedActivity activity = (IExtendedActivity) getContext();
            if (activity == null)
                return;
            activity.executeAfterFragmentResumed(new IExtendedActivity.Action() {
                @Override
                public void execute(IExtendedActivity activity) {
                    final FragmentManager fm = ((FragmentActivity) activity).getSupportFragmentManager();
                    final DialogFragment fragment = (DialogFragment) fm
                            .findFragmentByTag(PROGRESS_FRAGMENT_TAG);
                    if (fragment != null) {
                        fragment.dismiss();
                    }
                }
            });
        }

        @Override
        protected void showProgress() {
            final IExtendedActivity activity = (IExtendedActivity) getContext();
            if (activity == null)
                return;
            activity.executeAfterFragmentResumed(new IExtendedActivity.Action() {
                @Override
                public void execute(IExtendedActivity activity) {
                    final DialogFragment fragment = new ProgressDialogFragment();
                    fragment.setCancelable(false);
                    fragment.show(((FragmentActivity) activity).getSupportFragmentManager(),
                            PROGRESS_FRAGMENT_TAG);
                }
            });
        }

        @Override
        protected void onFileSaved(@NonNull File savedFile, @Nullable String mimeType) {
            final MediaViewerActivity activity = (MediaViewerActivity) getContext();
            if (activity == null)
                return;

            final Uri fileUri = ShareProvider.getUriForFile(activity, AUTHORITY_TWIDERE_SHARE, savedFile);

            final Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setDataAndType(fileUri, mimeType);
            intent.putExtra(Intent.EXTRA_STREAM, fileUri);
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                intent.addFlags(Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
            }
            activity.processShareIntent(intent);
            startActivityForResult(Intent.createChooser(intent, activity.getString(R.string.share)),
                    REQUEST_SHARE_MEDIA);
        }

        @Override
        protected void onFileSaveFailed() {
            final MediaViewerActivity activity = (MediaViewerActivity) getContext();
            if (activity == null)
                return;
            Toast.makeText(activity, R.string.error_occurred, Toast.LENGTH_SHORT).show();
        }
    };
    AsyncTaskUtils.executeTask(task);
}

From source file:systems.byteswap.publicstream.MainActivity.java

/** callback listener for long clicks.
 * Used to delete an already loaded program
 * or download a remote one//  w  w w. j a  v a2  s. c o  m
*/
public void programLongClickListener(final ORFParser.ORFProgram child, boolean toDelete) {
    if (toDelete) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Wollen Sie den Beitrag " + child.shortTitle + " wirklich lschen?")
                .setTitle("Lschen");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //delete the list entry & update the list
                store.deleteOffline(String.valueOf(child.id));
                Toast.makeText(MainActivity.this, "Beitrag gelscht", Toast.LENGTH_SHORT).show();
                //Update the list
                ArrayList<ORFParser.ORFProgram> temp = store.getOffline();
                if (temp != null) {
                    programListOffline = temp;
                    dataFragment.setProgramListOffline(temp);
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        ViewPager mViewPager = (ViewPager) findViewById(R.id.container);
                        mViewPager.getAdapter().notifyDataSetChanged();
                    }
                });
            }
        });
        builder.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // User cancelled the dialog
            }
        });

        builder.create().show();

    } else {
        programDownloadClickListener(child);
    }
}

From source file:de.gebatzens.sia.FirstUseActivity.java

@Override
protected void onCreate(Bundle bundle) {
    AppCompatDelegate.setDefaultNightMode(SIAApp.SIA_APP.getThemeMode());
    setTheme(R.style.FirstUseTheme);/*  w w  w  .j  av a2s.c  o  m*/
    adapter = new FirstUseAdapter(getSupportFragmentManager(), FirstUseActivity.this);

    super.onCreate(bundle);

    if (SIAApp.SIA_APP.getCustomThemeName() != null) {
        if (SIAApp.SIA_APP.getCustomThemeName().equals("Summer")
                || SIAApp.SIA_APP.getCustomThemeName().equals("Winter")) {
            String themeName = SIAApp.SIA_APP.getSeasonTheme();
            if (!SIAApp.SIA_APP.getCustomThemeName().equals(themeName)) {
                if (themeName.equals("Winter")) {
                    SIAApp.SIA_APP.setCustomThemeName("Winter");
                    SIAApp.SIA_APP.school.loadTheme();
                } else {
                    SIAApp.SIA_APP.setCustomThemeName("Summer");
                    SIAApp.SIA_APP.school.loadTheme();
                }
            }
        }
    }

    if (SIAApp.SIA_APP.preferences.getBoolean("first_use", false)) {
        startActivity(new Intent(this, SetupActivity.class));
        finish();
        return;
    }

    setContentView(R.layout.activity_firstuse);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(adapter);
    viewPager.setOffscreenPageLimit(3);

    final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
    tabLayout.setupWithViewPager(viewPager);

    tabLayout.getTabAt(0).getCustomView().setSelected(true);

    iv_left = (ImageView) findViewById(R.id.fu_button_left);
    iv_right = (ImageView) findViewById(R.id.fu_button_right);

    iv_left.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SIAApp.SIA_APP.preferences.edit().putBoolean("first_use", true).apply();
            startActivity(new Intent(v.getContext(), SetupActivity.class));
            finish();
        }
    });

    iv_right.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            viewPager.setCurrentItem(1);
        }
    });

    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {
            FirstUseAdapter adapter = (FirstUseAdapter) viewPager.getAdapter();

            if (i >= 5)
                return;

            FirstUseFragment frag1 = adapter.fragments.get(i);
            FirstUseFragment frag2 = adapter.fragments.get(i + 1);

            int red = (int) (Color.red(frag1.color) * (1f - v) + Color.red(frag2.color) * v);
            int green = (int) (Color.green(frag1.color) * (1f - v) + Color.green(frag2.color) * v);
            int blue = (int) (Color.blue(frag1.color) * (1f - v) + Color.blue(frag2.color) * v);
            int newColor = Color.argb(255, red, green, blue);

            if (frag1.getView() != null)
                frag1.getView().setBackgroundColor(newColor);
            if (frag2.getView() != null)
                frag2.getView().setBackgroundColor(newColor);

        }

        @Override
        public void onPageSelected(int i) {
            if (i > 0)
                iv_left.setVisibility(View.INVISIBLE);
            else
                iv_left.setVisibility(View.VISIBLE);

            final int i2 = i;
            if (i == 5) {
                iv_right.setImageResource(R.drawable.ic_done);
                iv_right.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        SIAApp.SIA_APP.preferences.edit().putBoolean("first_use", true).apply();
                        startActivity(new Intent(v.getContext(), SetupActivity.class));
                        finish();
                    }
                });
            } else {
                iv_right.setImageResource(R.drawable.ic_arrow_forward);
                iv_right.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        viewPager.setCurrentItem(i2 + 1);
                    }
                });
            }
        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }
    });

}

From source file:com.dxj.student.widget.PagerSlidingTabStrip.java

public void setViewPager(ViewPager pager) {
    this.pager = pager;
    if (infoDataNum >= 4) {
        defaultTabLayoutParams = new LinearLayout.LayoutParams((MyUtils.getScreenWidth(getContext()) / 4),
                LayoutParams.MATCH_PARENT);
    } else if (infoDataNum == 2) {
        Log.i("TAG", "infoDataNum==2");
        defaultTabLayoutParams = new LinearLayout.LayoutParams((MyUtils.dip2px(getContext(), 100)),
                LayoutParams.MATCH_PARENT);
    } else if (infoDataNum == 1) {
        defaultTabLayoutParams = new LinearLayout.LayoutParams((MyUtils.getScreenWidth(getContext()) / 1),
                LayoutParams.MATCH_PARENT);
    } else {// www.j ava2s .c  o m
        defaultTabLayoutParams = new LinearLayout.LayoutParams((MyUtils.getScreenWidth(getContext()) / 3),
                LayoutParams.MATCH_PARENT);
    }
    expandedTabLayoutParams = new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, 1.0f);
    if (pager.getAdapter() == null) {
        throw new IllegalStateException("ViewPager does not have adapter instance.");
    }
    pager.setOnPageChangeListener(pageListener);
    notifyDataSetChanged();
}

From source file:com.jecelyin.android.common.widget.TabLayout.java

public void setupWithViewPager(@NonNull ViewPager viewPager) {
    PagerAdapter adapter = viewPager.getAdapter();
    if (adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    } else {/* w w  w  .jav  a  2 s  .co m*/
        this.setTabsFromPagerAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(this));
        this.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
        if (this.mSelectedTab == null || this.mSelectedTab.getPosition() != viewPager.getCurrentItem()) {
            this.getTabAt(viewPager.getCurrentItem()).select();
        }

    }
}

From source file:systems.byteswap.publicstream.MainActivity.java

/**
 * Regular scheduled method, updating following information:
 * Current seek time / full time of the program in the notification
 * Current seek time / full time / progress bar in the main activity
 *///from w  w  w. j  a  v  a  2s  .c  om
private void TimerMethodSeek() {
    if (mService != null) {
        /** manage time formats, depending on play state **/
        SimpleDateFormat formatter = new SimpleDateFormat("mm:ss");
        int timeStamp = mService.getCurrentPosition();
        String dateString;

        switch (timeStamp) {
        //stopped/preparing... -> time: 0
        case -1:
            dateString = formatter.format(new Date(0));
            break;
        //pause: no change...
        case -2:
            dateString = formatter.format(new Date(currentTime));
            break;
        //Playing...
        default:
            dateString = formatter.format(new Date(timeStamp));
            currentTime = timeStamp;
            dataFragment.setCurrentTime(timeStamp);
            break;
        }
        //add the separator
        dateString += "/";

        timeStamp = mService.getDuration();
        switch (timeStamp) {
        case -1:
            dateString += "00:00";
            break;
        case -2:
            dateString += formatter.format(new Date(currentDuration));
            break;
        default:
            dateString += formatter.format(new Date(timeStamp));
            currentDuration = timeStamp;
            dataFragment.setCurrentDuration(currentDuration);
            break;
        }

        SeekBar seekbar = (SeekBar) findViewById(R.id.seekBar);
        if (!mService.isLive()) {
            try {
                seekbar.setProgress((int) (((float) currentTime / (float) currentDuration) * 1000));
            } catch (ArithmeticException e) {
                Log.d("PUBLICSTREAM", "Progressbar: Div by 0");
            }
        } else {
            currentProgram = null;
            seekbar.setProgress(0);
        }

        /** set the corresponding notification **/
        switch (timeStamp) {
        case -1:
            //cancel() if the playback is stopped
            mService.stopForeground(true);
            updateScreenNotification(NOTIFICATION_COMMAND_CANCEL, "");
            isPausedNotified = false;
            Log.i("NOTE", "STOPPED -> cancel");
            handler.removeCallbacks(mRunnableSeek);

            //if we reached this block either the current program was completely played
            //or we are at the activity start-up
            //so we need to store the current program as "listened" in following places:
            //-) currentProgram
            //-) StorageProvider
            //-) The containing ArrayList of programs
            if (currentProgram != null) {
                store.setListened(String.valueOf(currentProgram.id), currentProgram.dayLabel);
                currentProgram.isListened = true;

                if (programListOffline.size() > currentPosition
                        && programListOffline.get(currentPosition).id == currentProgram.id)
                    programListOffline.set(currentPosition, currentProgram);
                if (programListToday.size() > currentPosition
                        && programListToday.get(currentPosition).id == currentProgram.id)
                    programListToday.set(currentPosition, currentProgram);
                if (programListTodayMinus1.size() > currentPosition
                        && programListTodayMinus1.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus1.set(currentPosition, currentProgram);
                if (programListTodayMinus2.size() > currentPosition
                        && programListTodayMinus2.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus2.set(currentPosition, currentProgram);
                if (programListTodayMinus3.size() > currentPosition
                        && programListTodayMinus3.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus3.set(currentPosition, currentProgram);
                if (programListTodayMinus4.size() > currentPosition
                        && programListTodayMinus4.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus4.set(currentPosition, currentProgram);
                if (programListTodayMinus5.size() > currentPosition
                        && programListTodayMinus5.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus5.set(currentPosition, currentProgram);
                if (programListTodayMinus6.size() > currentPosition
                        && programListTodayMinus6.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus6.set(currentPosition, currentProgram);
                if (programListTodayMinus7.size() > currentPosition
                        && programListTodayMinus7.get(currentPosition).id == currentProgram.id)
                    programListTodayMinus7.set(currentPosition, currentProgram);
                ViewPager mViewPager = (ViewPager) findViewById(R.id.container);
                mViewPager.getAdapter().notifyDataSetChanged();
                currentProgram = null;
            }
            break;
        case -2:
            mService.stopForeground(true);
            //if paused && not notified already (done only once)
            if (!isPausedNotified && showPausedNotification) {
                isPausedNotified = true;
                updateScreenNotification(NOTIFICATION_COMMAND_UPDATE_TEXT, "Pause: " + dateString);
                Log.i("NOTE", "PAUSED -> new notification");
            }
            if (!showPausedNotification)
                updateScreenNotification(NOTIFICATION_COMMAND_CANCEL, "");
            handler.removeCallbacks(mRunnableSeek);
            Log.i("NOTE", "PAUSED -> already notified");
            break;
        default:
            //if the playback is active, display the current time
            if (showPlayNotification) {
                isPausedNotified = false;
                Log.i("NOTE", "PLAY -> update...");
                mService.startForeground(MainActivity.NOTIFICATION_PLAY_ID,
                        updateScreenNotification(NOTIFICATION_COMMAND_UPDATE_TEXT, "Abspielen: " + dateString));
            }
            handler.postDelayed(mRunnableSeek, 1000);
            break;
        }

        //Update the time in the text view (GUI, bottom right)
        TextView time = (TextView) findViewById(R.id.textViewTime);
        time.setText(dateString);
        updateGUIElementsVisibility();
    }
}