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

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

Introduction

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

Prototype

public int getCurrentItem() 

Source Link

Usage

From source file:org.appspot.apprtc.my.MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    myApplication = (MyApplication) getApplicationContext();

    // ? ? -> ? 
    //??   /*from   w  ww.j  a va2 s.c  o m*/
    //? ? 

    if (!isServiceRunningCheck()) {
        Intent intent = new Intent(this, ClientSocketService.class);
        startService(intent);
        //            DataOutputStream out;
        //            try {
        //                out = new DataOutputStream(myApplication.getSocket().getOutputStream());
        //                out.write(("{ \"status\": \"login\", \"data\": \""+myApplication.getId()+"\" }").getBytes("UTF-8"));
        //            } catch (IOException e) {
        //                e.printStackTrace();
        //            }
    }

    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    //?  ? 
    setSupportActionBar(toolbar);

    final ActionBar ab = getSupportActionBar();
    ab.setHomeAsUpIndicator(R.drawable.ic_menu);
    ab.setTitle(myApplication.getId());
    // 3 ? 
    ab.setDisplayHomeAsUpEnabled(true);
    //  

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    // ?
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    if (navigationView != null) {
        setupDrawerContent(navigationView);
    }

    /**/
    avatar = (ImageView) navigationView.getHeaderView(0).findViewById(R.id.avatarNav);
    avatarName = Environment.getExternalStorageDirectory().getAbsolutePath()
            + "/ChatRTC/Downloads/myAvatar.png";
    //        Glide.with(avatar.getContext()).load(Uri.fromFile(new File(avatarName))).bitmapTransform(new BlurTransformation(getApplicationContext(), 25, 2), new CropCircleTransformation(getApplicationContext)).into(avatar);
    //        Glide.with(avatar.getContext())
    //                .load(Uri.fromFile(new File(avatarName)))
    //                .fitCenter()
    //                  .into(avatar);
    File directory_ChatRTC = new File(avatarName);
    if (directory_ChatRTC.exists()) { // 
        //            Glide.with(this).load(avatarName).bitmapTransform(new CropCircleTransformation(this)).into(avatar);
        //            Glide.with(this).load(avatarName).centerCrop().into(avatar);
        avatar.setImageURI(Uri.fromFile(new File(avatarName)));
    } else {
        avatar.setImageResource(R.drawable.ic_account_circle_black_24dp);
    }
    avatar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();
            //                Intent intent = new Intent(MainActivity.this,FaceDetectActivity.class);
            Intent intent = new Intent(MainActivity.this, FdActivity.class);
            startActivityForResult(intent, REQUEST_ACT);
        }
    });

    final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    if (viewPager != null) {
        setupViewPager(viewPager);
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position) {
                case 0:
                    fab.show();
                    break;
                case 1:
                    fab.hide();
                    break;
                default:
                    fab.hide();
                    break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //                Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG)
            //                        .setAction("Action", null).show();
            //                Intent intent = new Intent(MainActivity.this,AddFriendsActivity.class);
            //                intent.putExtra("user_id",myApplication.getId());
            //                startActivity(intent);
            int tag = viewPager.getCurrentItem();
            //String tag = currentFragment.getTag();
            switch (tag) {
            case 0:
                Intent intent = new Intent(MainActivity.this, AddFriendsActivity.class);
                intent.putExtra("user_id", myApplication.getId());
                startActivity(intent);
                break;
            case 1:
                Snackbar.make(view, "Task creation is...under construction", Snackbar.LENGTH_LONG).show();
                break;
            default:
                Log.e("Unhandled", "Unhandled FAB fragment tag " + tag);
                Snackbar.make(view, "Not sure what to do...my bad", Snackbar.LENGTH_SHORT).show();
                break;
            }

        }
    });

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

}

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   www.  jav a  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.adaway.ui.lists.ListsFragment.java

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
        @Nullable Bundle savedInstanceState) {
    // Store activity
    this.mActivity = this.getActivity();
    // Enable option menu
    this.setHasOptionsMenu(true);
    // Create fragment view
    View view = inflater.inflate(R.layout.lists_fragment, container, false);
    /*// ww  w .  j ava2  s  .co m
     * Configure tabs.
     */
    // Get view pager
    final ViewPager viewPager = view.findViewById(R.id.lists_view_pager);
    // Create pager adapter
    final ListsFragmentPagerAdapter pagerAdapter = new ListsFragmentPagerAdapter(this.getActivity(),
            this.getFragmentManager());
    // Set view pager adapter
    viewPager.setAdapter(pagerAdapter);
    // Get navigation view
    BottomNavigationView navigationView = view.findViewById(R.id.navigation);
    // Add view pager on page listener to set selected tab according the selected page
    viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            navigationView.getMenu().getItem(position).setChecked(true);
            pagerAdapter.ensureActionModeCanceled();
        }
    });
    // Add navigation view item selected listener to change view pager current item
    navigationView.setOnNavigationItemSelectedListener(item -> {
        switch (item.getItemId()) {
        case R.id.lists_navigation_blacklist:
            viewPager.setCurrentItem(0);
            return true;
        case R.id.lists_navigation_whitelist:
            viewPager.setCurrentItem(1);
            return true;
        case R.id.lists_navigation_redirection_list:
            viewPager.setCurrentItem(2);
            return true;
        }
        return false;
    });
    /*
     * Configure add action button.
     */
    // Get the add action button
    FloatingActionButton addActionButton = view.findViewById(R.id.lists_add);
    // Set add action button listener
    addActionButton.setOnClickListener(clickedView -> {
        // Get current fragment position
        int currentItemPosition = viewPager.getCurrentItem();
        // Add item to the current fragment
        pagerAdapter.addItem(currentItemPosition);
    });
    // Return fragment view
    return view;
}

From source file:com.momock.binder.container.ViewPagerBinder.java

public void onBind(final ViewPager view, final IDataList<?> dataSource) {
    if (view != null) {
        if (refIndicator != null && refIndicator.get() != null) {
            refIndicator.get().setCount(dataSource.getItemCount());
        }//from ww  w.  j a  va 2 s.co m
        view.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                position = adapter instanceof IRoundAdapter
                        ? ((IRoundAdapter) adapter).getRealPosition(position)
                        : position;
                Object item = dataSource.getItem(position);
                ItemEventArgs args = new ItemEventArgs(view, position, item);
                itemSelectedEvent.fireEvent(view, args);
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCurrentIndex(position);
                }
            }

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {
                viewPagerState = state;
            }
        });
        view.setOnTouchListener(new View.OnTouchListener() {
            GestureDetector detector = null;

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                view.getParent().requestDisallowInterceptTouchEvent(true);
                if (detector == null) {
                    detector = new GestureDetector(v.getContext(),
                            new GestureDetector.SimpleOnGestureListener() {

                                @Override
                                public boolean onSingleTapConfirmed(MotionEvent e) {
                                    Object item = dataSource.getItem(adapter instanceof IRoundAdapter
                                            ? ((IRoundAdapter) adapter).getRealPosition(view.getCurrentItem())
                                            : view.getCurrentItem());
                                    ItemEventArgs args = new ItemEventArgs(view, view.getCurrentItem(), item);
                                    itemClickedEvent.fireEvent(view, args);
                                    return true;
                                }

                            });
                }
                return detector.onTouchEvent(event);
            }
        });
        adapter = new PagerAdapter() {
            BlockingQueue<View> savedViews = new LinkedBlockingQueue<View>();

            @Override
            public int getCount() {
                return dataSource.getItemCount();
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == ((View) object);
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                View convertView = null;
                if (savedViews.size() > 0) {
                    convertView = savedViews.poll();
                }
                Object item = dataSource.getItem(position);
                if (convertView != null)
                    convertView.setTag(null);
                convertView = itemBinder.onCreateItemView(convertView, item, ViewPagerBinder.this);
                convertView.setTag(item);
                container.addView(convertView, 0);
                return convertView;
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                savedViews.add((View) object);
                container.removeView((View) object);
            }

            long lastDataSetChangedTick = 0;

            @Override
            public void notifyDataSetChanged() {
                lastDataSetChangedTick = System.nanoTime();
                getDataChangedEvent().fireEvent(this, new EventArgs());
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCount(dataSource.getItemCount());
                }
                super.notifyDataSetChanged();
                Logger.debug("ViewPagerBinder.PagerAdapter.notifyDataSetChanged");
            }

            long updateTick = 0;

            @Override
            public void startUpdate(ViewGroup container) {
                updateTick = System.nanoTime();
                super.startUpdate(container);
            }

            @Override
            public void setPrimaryItem(ViewGroup container, int position, Object object) {
                super.setPrimaryItem(container, position, object);
            }

            @Override
            public void finishUpdate(ViewGroup container) {
                super.finishUpdate(container);
                if (lastDataSetChangedTick < updateTick)
                    lastDataSetChangedTick = 0;
            }

            @Override
            public int getItemPosition(Object object) {
                return lastDataSetChangedTick == 0 ? PagerAdapter.POSITION_UNCHANGED
                        : PagerAdapter.POSITION_NONE;
            }
        };
        if (round)
            adapter = new RoundPagerAdapter(adapter);
        view.setAdapter(adapter);
        dataSource.addDataChangedHandler(new IEventHandler<DataChangedEventArgs>() {

            @Override
            public void process(Object sender, DataChangedEventArgs args) {
                adapter.notifyDataSetChanged();
            }

        });
        if (round)
            view.setCurrentItem(Math.max(100, dataSource.getItemCount() * 100), false);
    }
}

From source file:au.com.wallaceit.reddinator.SubredditSelectActivity.java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.subredditselect);

    // load personal list from saved prefereces, if null use default and save
    mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(SubredditSelectActivity.this);
    global = ((GlobalObjects) SubredditSelectActivity.this.getApplicationContext());

    // get subreddit list and set adapter
    subredditList = global.getSubredditManager().getSubredditNames();
    subsAdapter = new MySubredditsAdapter(this, subredditList);
    ListView subListView = (ListView) findViewById(R.id.sublist);
    subListView.setAdapter(subsAdapter);
    subListView.setTextFilterEnabled(true);
    subListView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String subreddit = ((TextView) view.findViewById(R.id.subreddit_name)).getText().toString();
            global.getSubredditManager().setFeedSubreddit(mAppWidgetId, subreddit);
            updateFeedAndFinish();/* w w  w . j a v a 2 s.  c  o  m*/
            //System.out.println(sreddit+" selected");
        }
    });
    subsAdapter.sort(new Comparator<String>() {
        @Override
        public int compare(String s, String t1) {
            return s.compareToIgnoreCase(t1);
        }
    });
    // get multi list and set adapter
    mMultiAdapter = new MyMultisAdapter(this);
    ListView multiListView = (ListView) findViewById(R.id.multilist);
    multiListView.setAdapter(mMultiAdapter);
    multiListView.setTextFilterEnabled(true);
    multiListView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (position == mMultiAdapter.getCount() - 1) {
                LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.dialog_multi_add,
                        parent, false);
                final EditText name = (EditText) layout.findViewById(R.id.new_multi_name);
                AlertDialog.Builder builder = new AlertDialog.Builder(SubredditSelectActivity.this);
                builder.setTitle("Create A Multi").setView(layout)
                        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                            }
                        }).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                if (name.getText().toString().equals("")) {
                                    Toast.makeText(SubredditSelectActivity.this,
                                            "Please enter a name for the multi", Toast.LENGTH_LONG).show();
                                    return;
                                }
                                new SubscriptionEditTask(SubscriptionEditTask.ACTION_MULTI_CREATE)
                                        .execute(name.getText().toString());
                                dialogInterface.dismiss();
                            }
                        }).show();
            } else {
                JSONObject multiObj = mMultiAdapter.getItem(position);
                try {
                    String name = multiObj.getString("display_name");
                    String path = multiObj.getString("path");
                    global.getSubredditManager().setFeed(mAppWidgetId, name, path, true);
                    updateFeedAndFinish();
                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(SubredditSelectActivity.this, "Error setting multi.", Toast.LENGTH_LONG)
                            .show();
                }
            }
        }
    });

    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    if (extras != null) {
        mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
                AppWidgetManager.INVALID_APPWIDGET_ID);
        if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
            mAppWidgetId = 0; // Id of 4 zeros indicates its the app view, not a widget, that is being updated
        } else {
            String action = getIntent().getAction();
            widgetFirstTimeSetup = action != null
                    && action.equals("android.appwidget.action.APPWIDGET_CONFIGURE");
        }
    } else {
        mAppWidgetId = 0;
    }

    final ViewPager pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new SimpleTabsAdapter(new String[] { "My Subreddits", "My Multis" },
            new int[] { R.id.sublist, R.id.multilist }, SubredditSelectActivity.this, null));

    LinearLayout tabsLayout = (LinearLayout) findViewById(R.id.tab_widget);
    tabs = new SimpleTabsWidget(SubredditSelectActivity.this, tabsLayout);
    tabs.setViewPager(pager);

    addButton = (Button) findViewById(R.id.addsrbutton);
    addButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Intent intent = new Intent(SubredditSelectActivity.this, ViewAllSubredditsActivity.class);
            startActivityForResult(intent, 1);
        }
    });
    refreshButton = (Button) findViewById(R.id.refreshloginbutton);
    refreshButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            if (global.mRedditData.isLoggedIn()) {
                if (pager.getCurrentItem() == 1) {
                    refreshMultireddits();
                } else {
                    refreshSubreddits();
                }
            } else {
                global.mRedditData.initiateLogin(SubredditSelectActivity.this);
            }
        }
    });
    // sort button
    sortBtn = (Button) findViewById(R.id.sortselect);
    String sortTxt = "Sort:  "
            + mSharedPreferences.getString("sort-" + (mAppWidgetId == 0 ? "app" : mAppWidgetId), "hot");
    sortBtn.setText(sortTxt);
    sortBtn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            showSortDialog();
        }
    });

    ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    // set theme colors
    setThemeColors();

    GlobalObjects.doShowWelcomeDialog(SubredditSelectActivity.this);
}

From source file:com.hanbing.library.android.view.CustomTabLayout23.java

/**
 * The one-stop shop for setting up this {@link CustomTabLayout23} with a {@link ViewPager}.
 *
 * <p>This method will:// www .ja  v a2  s. c  o  m
 * <ul>
 *     <li>Add a {@link ViewPager.OnPageChangeListener} that will forward events to
 *     this TabLayout.</li>
 *     <li>Populate the TabLayout's tabs from the ViewPager's {@link PagerAdapter}.</li>
 *     <li>Set our {@link CustomTabLayout23.OnTabSelectedListener} which will forward
 *     selected events to the ViewPager</li>
 * </ul>
 * </p>
 *
 * @see #setTabsFromPagerAdapter(PagerAdapter)
 * @see TabLayoutOnPageChangeListener
 * @see ViewPagerOnTabSelectedListener
 */
public void setupWithViewPager(@NonNull ViewPager viewPager) {
    final PagerAdapter adapter = viewPager.getAdapter();
    if (adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    }

    // 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 TabLayoutOnPageChangeListener(this));

    // Now we'll add a tab selected listener to set ViewPager's current item
    setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(viewPager));

    // 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.telegram.ui.ThemePreviewActivity.java

@Override
public View createView(Context context) {
    page1 = new FrameLayout(context);
    ActionBarMenu menu = actionBar.createMenu();
    final ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_search).setIsSearchField(true)
            .setActionBarMenuItemSearchListener(new ActionBarMenuItem.ActionBarMenuItemSearchListener() {
                @Override/*from   w  w  w .j a va2  s.c o  m*/
                public void onSearchExpand() {

                }

                @Override
                public boolean canCollapseSearch() {
                    return true;
                }

                @Override
                public void onSearchCollapse() {

                }

                @Override
                public void onTextChanged(EditText editText) {

                }
            });
    item.getSearchField().setHint(LocaleController.getString("Search", R.string.Search));

    actionBar.setBackButtonDrawable(new MenuDrawable());
    actionBar.setAddToContainer(false);
    actionBar.setTitle(LocaleController.getString("ThemePreview", R.string.ThemePreview));

    page1 = new FrameLayout(context) {
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int widthSize = MeasureSpec.getSize(widthMeasureSpec);
            int heightSize = MeasureSpec.getSize(heightMeasureSpec);

            setMeasuredDimension(widthSize, heightSize);

            measureChildWithMargins(actionBar, widthMeasureSpec, 0, heightMeasureSpec, 0);
            int actionBarHeight = actionBar.getMeasuredHeight();
            if (actionBar.getVisibility() == VISIBLE) {
                heightSize -= actionBarHeight;
            }
            FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) listView.getLayoutParams();
            layoutParams.topMargin = actionBarHeight;
            listView.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY),
                    MeasureSpec.makeMeasureSpec(heightSize, MeasureSpec.EXACTLY));

            measureChildWithMargins(floatingButton, widthMeasureSpec, 0, heightMeasureSpec, 0);
        }

        @Override
        protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
            boolean result = super.drawChild(canvas, child, drawingTime);
            if (child == actionBar && parentLayout != null) {
                parentLayout.drawHeaderShadow(canvas,
                        actionBar.getVisibility() == VISIBLE ? actionBar.getMeasuredHeight() : 0);
            }
            return result;
        }
    };
    page1.addView(actionBar, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));

    listView = new RecyclerListView(context);
    listView.setVerticalScrollBarEnabled(true);
    listView.setItemAnimator(null);
    listView.setLayoutAnimation(null);
    listView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
    listView.setVerticalScrollbarPosition(LocaleController.isRTL ? RecyclerListView.SCROLLBAR_POSITION_LEFT
            : RecyclerListView.SCROLLBAR_POSITION_RIGHT);
    page1.addView(listView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT,
            Gravity.LEFT | Gravity.TOP));

    floatingButton = new ImageView(context);
    floatingButton.setScaleType(ImageView.ScaleType.CENTER);

    Drawable drawable = Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(56),
            Theme.getColor(Theme.key_chats_actionBackground),
            Theme.getColor(Theme.key_chats_actionPressedBackground));
    if (Build.VERSION.SDK_INT < 21) {
        Drawable shadowDrawable = context.getResources().getDrawable(R.drawable.floating_shadow).mutate();
        shadowDrawable.setColorFilter(new PorterDuffColorFilter(0xff000000, PorterDuff.Mode.MULTIPLY));
        CombinedDrawable combinedDrawable = new CombinedDrawable(shadowDrawable, drawable, 0, 0);
        combinedDrawable.setIconSize(AndroidUtilities.dp(56), AndroidUtilities.dp(56));
        drawable = combinedDrawable;
    }
    floatingButton.setBackgroundDrawable(drawable);
    floatingButton.setColorFilter(
            new PorterDuffColorFilter(Theme.getColor(Theme.key_chats_actionIcon), PorterDuff.Mode.MULTIPLY));
    floatingButton.setImageResource(R.drawable.floating_pencil);
    if (Build.VERSION.SDK_INT >= 21) {
        StateListAnimator animator = new StateListAnimator();
        animator.addState(new int[] { android.R.attr.state_pressed },
                ObjectAnimator
                        .ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4))
                        .setDuration(200));
        animator.addState(new int[] {},
                ObjectAnimator
                        .ofFloat(floatingButton, "translationZ", AndroidUtilities.dp(4), AndroidUtilities.dp(2))
                        .setDuration(200));
        floatingButton.setStateListAnimator(animator);
        floatingButton.setOutlineProvider(new ViewOutlineProvider() {
            @SuppressLint("NewApi")
            @Override
            public void getOutline(View view, Outline outline) {
                outline.setOval(0, 0, AndroidUtilities.dp(56), AndroidUtilities.dp(56));
            }
        });
    }
    page1.addView(floatingButton,
            LayoutHelper.createFrame(Build.VERSION.SDK_INT >= 21 ? 56 : 60,
                    Build.VERSION.SDK_INT >= 21 ? 56 : 60,
                    (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.BOTTOM,
                    LocaleController.isRTL ? 14 : 0, 0, LocaleController.isRTL ? 0 : 14, 14));

    dialogsAdapter = new DialogsAdapter(context);
    listView.setAdapter(dialogsAdapter);

    page2 = new SizeNotifierFrameLayout(context) {
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int widthSize = MeasureSpec.getSize(widthMeasureSpec);
            int heightSize = MeasureSpec.getSize(heightMeasureSpec);

            setMeasuredDimension(widthSize, heightSize);

            measureChildWithMargins(actionBar2, widthMeasureSpec, 0, heightMeasureSpec, 0);
            int actionBarHeight = actionBar2.getMeasuredHeight();
            if (actionBar2.getVisibility() == VISIBLE) {
                heightSize -= actionBarHeight;
            }
            FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) listView2.getLayoutParams();
            layoutParams.topMargin = actionBarHeight;
            listView2.measure(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY),
                    MeasureSpec.makeMeasureSpec(heightSize, MeasureSpec.EXACTLY));
        }

        @Override
        protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
            boolean result = super.drawChild(canvas, child, drawingTime);
            if (child == actionBar2 && parentLayout != null) {
                parentLayout.drawHeaderShadow(canvas,
                        actionBar2.getVisibility() == VISIBLE ? actionBar2.getMeasuredHeight() : 0);
            }
            return result;
        }
    };
    page2.setBackgroundImage(Theme.getCachedWallpaper());

    actionBar2 = createActionBar(context);
    actionBar2.setBackButtonDrawable(new BackDrawable(false));
    actionBar2.setTitle("Reinhardt");
    actionBar2.setSubtitle(LocaleController.formatDateOnline(System.currentTimeMillis() / 1000 - 60 * 60));
    page2.addView(actionBar2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));

    listView2 = new RecyclerListView(context);
    listView2.setVerticalScrollBarEnabled(true);
    listView2.setItemAnimator(null);
    listView2.setLayoutAnimation(null);
    listView2.setPadding(0, AndroidUtilities.dp(4), 0, AndroidUtilities.dp(4));
    listView2.setClipToPadding(false);
    listView2.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, true));
    listView2.setVerticalScrollbarPosition(LocaleController.isRTL ? RecyclerListView.SCROLLBAR_POSITION_LEFT
            : RecyclerListView.SCROLLBAR_POSITION_RIGHT);
    page2.addView(listView2, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT,
            Gravity.LEFT | Gravity.TOP));

    messagesAdapter = new MessagesAdapter(context);
    listView2.setAdapter(messagesAdapter);

    fragmentView = new FrameLayout(context);
    FrameLayout frameLayout = (FrameLayout) fragmentView;

    final ViewPager viewPager = new ViewPager(context);
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            dotsContainer.invalidate();
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
    viewPager.setAdapter(new PagerAdapter() {

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return object == view;
        }

        @Override
        public int getItemPosition(Object object) {
            return POSITION_UNCHANGED;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View view = position == 0 ? page1 : page2;
            container.addView(view);
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }

        @Override
        public void unregisterDataSetObserver(DataSetObserver observer) {
            if (observer != null) {
                super.unregisterDataSetObserver(observer);
            }
        }
    });
    AndroidUtilities.setViewPagerEdgeEffectColor(viewPager, Theme.getColor(Theme.key_actionBarDefault));
    frameLayout.addView(viewPager, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT,
            LayoutHelper.MATCH_PARENT, Gravity.LEFT | Gravity.TOP, 0, 0, 0, 48));

    View shadow = new View(context);
    shadow.setBackgroundResource(R.drawable.header_shadow_reverse);
    frameLayout.addView(shadow,
            LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 3, Gravity.LEFT | Gravity.BOTTOM, 0, 0, 0, 48));

    FrameLayout bottomLayout = new FrameLayout(context);
    bottomLayout.setBackgroundColor(0xffffffff);
    frameLayout.addView(bottomLayout,
            LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.BOTTOM));

    dotsContainer = new View(context) {

        private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

        @Override
        protected void onDraw(Canvas canvas) {
            int selected = viewPager.getCurrentItem();
            for (int a = 0; a < 2; a++) {
                paint.setColor(a == selected ? 0xff999999 : 0xffcccccc);
                canvas.drawCircle(AndroidUtilities.dp(3 + 15 * a), AndroidUtilities.dp(4),
                        AndroidUtilities.dp(3), paint);
            }
        }
    };
    bottomLayout.addView(dotsContainer, LayoutHelper.createFrame(22, 8, Gravity.CENTER));

    TextView cancelButton = new TextView(context);
    cancelButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
    cancelButton.setTextColor(0xff19a7e8);
    cancelButton.setGravity(Gravity.CENTER);
    cancelButton.setBackgroundDrawable(Theme.createSelectorDrawable(0x2f000000, 0));
    cancelButton.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
    cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel).toUpperCase());
    cancelButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
    bottomLayout.addView(cancelButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT,
            LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.LEFT));
    cancelButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Theme.applyPreviousTheme();
            parentLayout.rebuildAllFragmentViews(false);
            finishFragment();
        }
    });

    TextView doneButton = new TextView(context);
    doneButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
    doneButton.setTextColor(0xff19a7e8);
    doneButton.setGravity(Gravity.CENTER);
    doneButton.setBackgroundDrawable(Theme.createSelectorDrawable(0x2f000000, 0));
    doneButton.setPadding(AndroidUtilities.dp(29), 0, AndroidUtilities.dp(29), 0);
    doneButton.setText(LocaleController.getString("ApplyTheme", R.string.ApplyTheme).toUpperCase());
    doneButton.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
    bottomLayout.addView(doneButton, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT,
            LayoutHelper.MATCH_PARENT, Gravity.TOP | Gravity.RIGHT));
    doneButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            applied = true;
            parentLayout.rebuildAllFragmentViews(false);
            Theme.applyThemeFile(themeFile, applyingTheme.name, false);
            finishFragment();
        }
    });

    return fragmentView;
}

From source file:org.catnut.fragment.TweetFragment.java

/**
 * ??//  w  w w .  ja v a  2 s  .  co  m
 *
 * @param thumb url
 * @param originalUrl url
 */
private void loadThumbs(String thumb, final String originalUrl, final ImageView thumbs,
        final JSONArray jsonArray, View overflow) {
    if (!TextUtils.isEmpty(thumb)) {
        if (mStayInLatest) {
            int screenWidth = CatnutUtils.getScreenWidth(getActivity());
            Picasso.with(getActivity()).load(thumb).into(thumbs);
            thumbs.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return CatnutUtils.imageOverlay(v, event);
                }
            });
            thumbs.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    thumbs.getDrawable().clearColorFilter();
                    mText.invalidate();
                    Intent intent = SingleFragmentActivity.getIntent(getActivity(),
                            SingleFragmentActivity.PHOTO_VIEWER);
                    intent.putExtra(Constants.PIC, originalUrl);
                    startActivity(intent);
                }
            });
        } else {
            thumbs.setImageResource(R.drawable.error);
        }
        thumbs.setVisibility(View.VISIBLE);
    } else {
        thumbs.setVisibility(View.GONE);
        overflow.setVisibility(View.GONE);
    }
    if (jsonArray != null && jsonArray.length() > 1) {
        overflow.setVisibility(View.VISIBLE);
        overflow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View view = LayoutInflater.from(getActivity()).inflate(R.layout.tweet_pics, null);
                LinePageIndicator indicator = (LinePageIndicator) view.findViewById(R.id.indicator);
                final ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
                pager.setPageTransformer(true, new PageTransformer.DepthPageTransformer());
                pager.setAdapter(new PagerAdapter() {
                    @Override
                    public int getCount() {
                        return jsonArray.length();
                    }

                    @Override
                    public boolean isViewFromObject(View view, Object object) {
                        return view == object;
                    }

                    @Override
                    public void destroyItem(ViewGroup container, int position, Object object) {
                        container.removeView((View) object);
                    }

                    @Override
                    public Object instantiateItem(ViewGroup container, int position) {
                        View v = LayoutInflater.from(getActivity()).inflate(R.layout.photo, null);
                        TouchImageView iv = (TouchImageView) v.findViewById(R.id.image);
                        String url = jsonArray.optJSONObject(position).optString(Status.thumbnail_pic);
                        String replace = url.replace(Constants.THUMBNAIL, Status.MEDIUM_THUMBNAIL);
                        Picasso.with(getActivity()).load(replace).into(iv);
                        container.addView(v);
                        return v;
                    }
                });
                indicator.setViewPager(pager);
                new AlertDialog.Builder(
                        new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_Dialog)).setView(view)
                                .setPositiveButton(getString(R.string.original_pics),
                                        new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialog, int which) {
                                                ArrayList<Uri> urls = new ArrayList<Uri>(jsonArray.length());
                                                for (int i = 0; i < jsonArray.length(); i++) {
                                                    String s = jsonArray.optJSONObject(i)
                                                            .optString(Status.thumbnail_pic)
                                                            .replace(Constants.THUMBNAIL,
                                                                    Status.LARGE_THUMBNAIL);
                                                    urls.add(Uri.parse(s));
                                                }
                                                Intent intent = SingleFragmentActivity.getIntent(getActivity(),
                                                        SingleFragmentActivity.GALLERY);
                                                intent.putExtra(GalleryPagerFragment.CUR_INDEX,
                                                        pager.getCurrentItem());
                                                intent.putExtra(GalleryPagerFragment.URLS, urls);
                                                intent.putExtra(GalleryPagerFragment.TITLE,
                                                        getString(R.string.tweet_pics));
                                                startActivity(intent);
                                            }
                                        })
                                .setNegativeButton(getString(R.string.close), null).show();
            }
        });
    } else {
        overflow.setVisibility(View.GONE);
    }
}

From source file:android.support.design.widget.RaeTabLayout.java

private void setupWithViewPager(@Nullable final ViewPager viewPager, boolean autoRefresh,
        boolean implicitSetup) {
    if (mViewPager != null) {
        // If we've already been setup with a ViewPager, remove us from it
        if (mPageChangeListener != null) {
            mViewPager.removeOnPageChangeListener(mPageChangeListener);
        }/*from ww w . jav  a 2s  .c om*/
        if (mAdapterChangeListener != null) {
            mViewPager.removeOnAdapterChangeListener(mAdapterChangeListener);
        }
    }

    if (mCurrentVpSelectedListener != null) {
        // If we already have a tab selected listener for the ViewPager, remove it
        removeOnTabSelectedListener(mCurrentVpSelectedListener);
        mCurrentVpSelectedListener = null;
    }

    if (viewPager != null) {
        mViewPager = viewPager;

        // Add our custom OnPageChangeListener to the ViewPager
        if (mPageChangeListener == null) {
            mPageChangeListener = new TabLayoutOnPageChangeListener(this);
        }
        mPageChangeListener.reset();
        viewPager.addOnPageChangeListener(mPageChangeListener);

        // Now we'll add a tab selected listener to set ViewPager's current item
        mCurrentVpSelectedListener = new ViewPagerOnTabSelectedListener(viewPager);
        addOnTabSelectedListener(mCurrentVpSelectedListener);

        final PagerAdapter adapter = viewPager.getAdapter();
        if (adapter != null) {
            // Now we'll populate ourselves from the pager adapter, adding an observer if
            // autoRefresh is enabled
            setPagerAdapter(adapter, autoRefresh);
        }

        // Add a listener so that we're notified of any adapter changes
        if (mAdapterChangeListener == null) {
            mAdapterChangeListener = new AdapterChangeListener();
        }
        mAdapterChangeListener.setAutoRefresh(autoRefresh);
        viewPager.addOnAdapterChangeListener(mAdapterChangeListener);

        // Now update the scroll position to match the ViewPager's current item
        setScrollPosition(viewPager.getCurrentItem(), 0f, true);
    } else {
        // We've been given a null ViewPager so we need to clear out the internal state,
        // listeners and observers
        mViewPager = null;
        setPagerAdapter(null, false);
    }

    mSetupViewPagerImplicitly = implicitSetup;
}

From source file:com.cw.litenote.note.NoteUi.java

/**
 *  Set picture view listeners/*from w  w w .jav  a 2s  .  co  m*/
 * @param act
 * @param pager
 * @param strPicture
 * @param linkUri
 * @param viewGroup
 */
private void setPictureView_listeners(final AppCompatActivity act, final ViewPager pager,
        final String strPicture, final String linkUri, ViewGroup viewGroup) {
    System.out.println("NoteUi / setPictureView_listeners");
    Button picView_back_button = (Button) (viewGroup.findViewById(R.id.image_view_back));
    Button picView_viewMode_button = (Button) (viewGroup.findViewById(R.id.image_view_mode));
    Button picView_previous_button = (Button) (viewGroup.findViewById(R.id.image_view_previous));
    Button picView_next_button = (Button) (viewGroup.findViewById(R.id.image_view_next));

    Button mVideoPlayButton = (Button) (viewGroup.findViewById(R.id.video_view_play_video));
    final TextView videoView_currPosition = (TextView) (viewGroup.findViewById(R.id.video_current_pos));
    SeekBar videoView_seekBar = (SeekBar) (viewGroup.findViewById(R.id.video_seek_bar));

    // Set video play button listener
    if (UtilVideo.hasVideoExtension(strPicture, act)) {
        mVideoPlayButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                System.out.println("NoteUi / setPictureView_listeners / mVideoPlayButton / getVideoState() = "
                        + UtilVideo.getVideoState());

                if ((BackgroundAudioService.mMediaPlayer != null)
                        && (Audio_manager.getPlayerState() != Audio_manager.PLAYER_AT_STOP)
                        && (UtilVideo.getVideoState() != UtilVideo.VIDEO_AT_PLAY)) {
                    // Dialog: confirm to disable audio or not
                    AlertDialog.Builder builder = new AlertDialog.Builder(act);
                    builder.setTitle(R.string.title_playing_audio).setMessage(R.string.message_continue_or_stop)
                            .setPositiveButton(R.string.btn_Stop, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Audio_manager.stopAudioPlayer();

                                    UtilVideo.changeVideoState();
                                    UtilVideo.playOrPauseVideo(pager, strPicture);
                                }
                            }).setNegativeButton(R.string.btn_Continue, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    UtilVideo.changeVideoState();
                                    UtilVideo.playOrPauseVideo(pager, strPicture);
                                }
                            }).show();
                } else {
                    UtilVideo.changeVideoState();
                    UtilVideo.playOrPauseVideo(pager, strPicture);
                    updateVideoPlayButtonState(pager, getFocus_notePos());
                }
            }
        });
    } else if (Util.isYouTubeLink(linkUri)) {
        mVideoPlayButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_media_play, 0, 0, 0);
        mVideoPlayButton.setVisibility(View.VISIBLE);
        // set listener for running YouTube
        mVideoPlayButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                System.out.println(
                        "NoteUi / _setPictureView_listeners / onClick to play YouTube / linkUri = " + linkUri);

                // apply native YouTube
                //                    Util.openLink_YouTube(act, linkUri);

                // apply YouTube DATA API for note view
                Intent intent = new Intent(act, YouTubePlayerAct.class);
                act.startActivityForResult(intent, Util.YOUTUBE_LINK_INTENT);
            }
        });
    } else if (Util.isEmptyString(strPicture) && linkUri.startsWith("http")
            && !UtilImage.hasImageExtension(linkUri, act) && //filter: some link has image extension
            Note.isViewAllMode()) {
        // set listener for running browser
        if (viewGroup != null) {
            CustomWebView linkWebView = ((CustomWebView) viewGroup.findViewById(R.id.link_web_view));
            linkWebView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_DOWN) {
                        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUri));
                        act.startActivity(i);
                    }
                    return true;
                }
            });
        }
    }

    // view mode
    // picture only
    if (Note.isPictureMode()) {
        // image: view back
        picView_back_button.setCompoundDrawablesWithIntrinsicBounds(
                R.drawable.ic_menu_back /*android.R.drawable.ic_menu_revert*/, 0, 0, 0);
        // click to finish Note_view_pager
        picView_back_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                // remove current link web view
                int position = getFocus_notePos();
                String tagPictureStr = "current" + position + "pictureView";
                ViewGroup pictureGroup = (ViewGroup) pager.findViewWithTag(tagPictureStr);
                if (pictureGroup != null) {
                    CustomWebView linkWebView = ((CustomWebView) pictureGroup.findViewById(R.id.link_web_view));
                    CustomWebView.pauseWebView(linkWebView);
                    CustomWebView.blankWebView(linkWebView);
                }

                // set not full screen
                Util.setFullScreen_noImmersive(act);

                // back to view all mode
                Note.setViewAllMode();
                Note.setOutline(act);
            }
        });

        // image: view mode
        picView_viewMode_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_menu_view, 0, 0,
                0);
        // click to select view mode
        picView_viewMode_button.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {
                TextView audio_title_text_view = (TextView) act.findViewById(R.id.pager_audio_title);
                audio_title_text_view.setSelected(false);

                //Creating the instance of PopupMenu
                popup = new PopupMenu(act, view);

                //Inflating the Popup using xml file
                popup.getMenuInflater().inflate(R.menu.pop_up_menu, popup.getMenu());

                //registering popup with OnMenuItemClickListener
                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    public boolean onMenuItemClick(MenuItem item) {

                        switch (item.getItemId()) {
                        case R.id.view_all:
                            Note.setViewAllMode();
                            Note.setOutline(act);
                            break;
                        case R.id.view_picture:
                            Note.setPictureMode();
                            Note.setOutline(act);
                            break;
                        case R.id.view_text:
                            Note.setTextMode();
                            Note.setOutline(act);
                            break;
                        }
                        return true;
                    }
                });

                popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
                    @Override
                    public void onDismiss(PopupMenu menu) {
                        TextView audio_title_text_view = (TextView) act.findViewById(R.id.pager_audio_title);
                        if (BackgroundAudioService.mMediaPlayer != null) {
                            if (BackgroundAudioService.mMediaPlayer.isPlaying()) {
                                AudioUi_note.showAudioName(act);
                                audio_title_text_view.setSelected(true);
                            }
                        } else
                            audio_title_text_view.setSelected(false);
                    }
                });
                popup.show();//showing pop up menu, will show status bar

                // for transient popup
                cancel_UI_callbacks();
                Note_adapter.picUI_primary = new NoteUi(act, pager, pager.getCurrentItem());
                Note_adapter.picUI_primary.tempShow_picViewUI(5005, strPicture);
            }
        });

        // image: previous button
        picView_previous_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_media_previous, 0,
                0, 0);
        // click to previous
        picView_previous_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                setFocus_notePos(getFocus_notePos() - 1);
                pager.setCurrentItem(pager.getCurrentItem() - 1);
            }
        });

        // image: next button
        picView_next_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_media_next, 0, 0, 0);
        // click to next
        picView_next_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                setFocus_notePos(getFocus_notePos() + 1);
                pager.setCurrentItem(pager.getCurrentItem() + 1);
            }
        });
    }

    // video view: apply media control customization or not
    if (Note.isPictureMode() || Note.isViewAllMode()) {
        if (!UtilVideo.hasMediaControlWidget) {
            // set video seek bar listener
            videoView_seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                // onStartTrackingTouch
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    System.out.println("NoteUi / _onStartTrackingTouch");
                    if ((UtilVideo.mVideoPlayer == null) && (UtilVideo.mVideoView != null)) {
                        if (Build.VERSION.SDK_INT >= 16)
                            UtilVideo.mVideoView.setBackground(null);
                        else
                            UtilVideo.mVideoView.setBackgroundDrawable(null);

                        UtilVideo.mVideoView.setVisibility(View.VISIBLE);
                        UtilVideo.mVideoPlayer = new VideoPlayer(act, pager, strPicture);
                        UtilVideo.mVideoView.seekTo(UtilVideo.mPlayVideoPosition);
                    }
                }

                // onProgressChanged
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    System.out.println("NoteUi / _onProgressChanged");
                    if (fromUser) {
                        // show progress change
                        int currentPos = videoFileLength_inMilliSeconds * progress / (seekBar.getMax() + 1);
                        // update current play time
                        videoView_currPosition.setText(Util.getTimeFormatString(currentPos));

                        //add below to keep showing seek bar
                        if (Note.isPictureMode())
                            show_picViewUI_previous_next(true, mPosition);
                        showSeekBarProgress = true;
                        if (handler != null)
                            handler.removeCallbacks(runnableHideUi);
                        tempShow_picViewUI(3001, strPicture); // for 3 seconds, _onProgressChanged
                    }
                }

                // onStopTrackingTouch
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    System.out.println("NoteUi / _onStopTrackingTouch");
                    if (UtilVideo.mVideoView != null) {
                        int mPlayVideoPosition = (int) (((float) (videoFileLength_inMilliSeconds / 100))
                                * seekBar.getProgress());
                        if (UtilVideo.mVideoPlayer != null)
                            UtilVideo.mVideoView.seekTo(mPlayVideoPosition);
                        if (handler != null)
                            handler.removeCallbacks(runnableHideUi);
                        tempShow_picViewUI(3002, strPicture); // for 3 seconds, _onProgressChanged
                    }
                }
            });
        }
    }
}