List of usage examples for android.support.v4.view ViewPager getAdapter
public PagerAdapter getAdapter()
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(); } }