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

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

Introduction

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

Prototype

public ViewPager(Context context) 

Source Link

Usage

From source file:com.mycelium.wallet.activity.modern.ModernMain.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    _mbwManager = MbwManager.getInstance(this);
    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);//from ww  w. ja va2s.c  om
    setContentView(mViewPager);
    ActionBar bar = getSupportActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setDisplayOptions(1, ActionBar.DISPLAY_SHOW_TITLE);

    // Load the theme-background (usually happens in styles.xml) but use a lower
    // pixel format, this saves around 10MB of allocated memory
    // persist the loaded Bitmap in the context of mbw-manager and reuse it every time this activity gets created
    try {
        BitmapDrawable background = (BitmapDrawable) _mbwManager.getBackgroundObjectsCache()
                .get("mainBackground", new Callable<BitmapDrawable>() {
                    @Override
                    public BitmapDrawable call() throws Exception {
                        BitmapFactory.Options options = new BitmapFactory.Options();
                        options.inPreferredConfig = Bitmap.Config.RGB_565;
                        Bitmap background = BitmapFactory.decodeResource(getResources(),
                                R.drawable.background_witherrors_dimmed, options);
                        BitmapDrawable drawable = new BitmapDrawable(getResources(), background);
                        drawable.setGravity(Gravity.CENTER);
                        return drawable;
                    }
                });
        getWindow().setBackgroundDrawable(background);
    } catch (ExecutionException ignore) {
    }

    mTabsAdapter = new TabsAdapter(this, mViewPager, _mbwManager);
    mAccountsTab = bar.newTab();
    mTabsAdapter.addTab(mAccountsTab.setText(getString(R.string.tab_accounts)), AccountsFragment.class, null);
    mBalanceTab = bar.newTab();
    mTabsAdapter.addTab(mBalanceTab.setText(getString(R.string.tab_balance)), BalanceMasterFragment.class,
            null);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.tab_transactions)),
            TransactionHistoryFragment.class, null);
    final Bundle addressBookConfig = new Bundle();
    addressBookConfig.putBoolean(AddressBookFragment.SELECT_ONLY, false);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.tab_addresses)), AddressBookFragment.class,
            addressBookConfig);

    bar.selectTab(mBalanceTab);
    _toaster = new Toaster(this);

    ChangeLog cl = new DarkThemeChangeLog(this);
    if (cl.isFirstRun() && cl.getChangeLog(false).size() > 0 && !cl.isFirstRunEver()) {
        cl.getLogDialog().show();
    }

    checkTorState();

    if (savedInstanceState != null) {
        _lastSync = savedInstanceState.getLong(LAST_SYNC, 0);
        _isAppStart = savedInstanceState.getBoolean(APP_START, true);
    }

    if (_isAppStart) {
        _mbwManager.getVersionManager().showFeatureWarningIfNeeded(this, Feature.APP_START);
        checkGapBug();
        _isAppStart = false;
    }
}

From source file:com.brq.wallet.activity.modern.ModernMain.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    _mbwManager = MbwManager.getInstance(this);
    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);/*  w ww. jav a2s .c  o  m*/
    setContentView(mViewPager);
    ActionBar bar = getSupportActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

    //getSupportActionBar().setHomeButtonEnabled(true);
    //getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.mipmap.ic_launcher); //also displays wide logo
    getSupportActionBar().setDisplayShowTitleEnabled(true);

    // Load the theme-background (usually happens in styles.xml) but use a lower
    // pixel format, this saves around 10MB of allocated memory
    // persist the loaded Bitmap in the context of mbw-manager and reuse it every time this activity gets created
    /*try {
       BitmapDrawable background = (BitmapDrawable) _mbwManager.getBackgroundObjectsCache().get("mainBackground", new Callable<BitmapDrawable>() {
    @Override
    public BitmapDrawable call() throws Exception {
       BitmapFactory.Options options = new BitmapFactory.Options();
       options.inPreferredConfig = Bitmap.Config.RGB_565;
       Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.background_witherrors_dimmed, options);
       BitmapDrawable drawable = new BitmapDrawable(getResources(), background);
       drawable.setGravity(Gravity.CENTER);
       return drawable;
    }
       });
       getWindow().setBackgroundDrawable(background);
    } catch (ExecutionException ignore) {
    }*/
    //getWindow().setBackgroundDrawableResource(R.color.colorBackground);

    mTabsAdapter = new TabsAdapter(this, mViewPager, _mbwManager);
    mAccountsTab = bar.newTab();
    mTabsAdapter.addTab(mAccountsTab.setText(getString(R.string.tab_accounts)), AccountsFragment.class, null);
    mBalanceTab = bar.newTab();
    mTabsAdapter.addTab(mBalanceTab.setText(getString(R.string.tab_balance)), BalanceMasterFragment.class,
            null);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.tab_transactions)),
            TransactionHistoryFragment.class, null);
    final Bundle addressBookConfig = new Bundle();
    addressBookConfig.putBoolean(AddressBookFragment.SELECT_ONLY, false);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.tab_addresses)), AddressBookFragment.class,
            addressBookConfig);

    bar.selectTab(mBalanceTab);
    _toaster = new Toaster(this);

    ChangeLog cl = new DarkThemeChangeLog(this);
    if (cl.isFirstRun() && cl.getChangeLog(false).size() > 0 && !cl.isFirstRunEver()) {
        cl.getLogDialog().show();
    }

    checkTorState();

    if (savedInstanceState != null) {
        _lastSync = savedInstanceState.getLong(LAST_SYNC, 0);
        _isAppStart = savedInstanceState.getBoolean(APP_START, true);
    }

    if (_isAppStart) {
        _mbwManager.getVersionManager().showFeatureWarningIfNeeded(this, Feature.APP_START);
        checkGapBug();
        _isAppStart = false;
    }
}

From source file:com.umeng.comm.ui.emoji.EmojiBorad.java

/**
 * create ViewPager view</br>//from www  .jav a2s .  co m
 * 
 * @return
 */
private ViewPager createVIewpager() {
    ViewPager viewPager = new ViewPager(getContext());
    ViewPager.LayoutParams params = new ViewPager.LayoutParams();
    params.width = ViewPager.LayoutParams.MATCH_PARENT;
    params.height = BOARD_HEIGHT;
    viewPager.setLayoutParams(params);
    viewPager.setPadding(0, 15, 0, 0);
    //        if(android.os.Build.VERSION.SDK_INT>= android.os.Build.VERSION_CODES.HONEYCOMB){
    //            viewPager.setOnDragListener(new OnDragListener() {
    //                @Override
    //                public boolean onDrag(View view, DragEvent dragEvent) {
    //
    //                    return false;
    //                }
    //            });
    //        }

    return viewPager;
}

From source file:com.pikachu.emoji.widget.EmojiView.java

/**
 * create ViewPager view</br>/*from   ww  w.j  a  v a2s. c  om*/
 * 
 * @return
 */
private ViewPager createVIewpager() {
    ViewPager viewPager = new ViewPager(getContext());
    ViewPager.LayoutParams params = new ViewPager.LayoutParams();
    params.width = android.support.v4.view.ViewPager.LayoutParams.MATCH_PARENT;
    params.height = BOARD_HEIGHT;
    viewPager.setLayoutParams(params);
    viewPager.setPadding(0, 15, 0, 0);
    return viewPager;
}

From source file:net.ustyugov.jtalk.adapter.ChatsSpinnerAdapter.java

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    List<Page> list = new ArrayList<Page>();
    int current = 0;
    int j = 0;//  w  w  w  .ja v a 2  s .  c o m

    for (int i = 0; i < getCount(); i++) {
        RosterItem item = getItem(i);
        String account = item.getAccount();
        String jid;

        if (item.isEntry()) {
            jid = item.getEntry().getUser();
        } else
            jid = item.getName();

        if (jid.equals(service.getCurrentJid()))
            current = j;
        else
            j++;

        LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = vi.inflate(R.layout.spinner_item, null);

        String name = jid;
        if (service.getConferencesHash(account).containsKey(jid)) {
            name = StringUtils.parseName(jid);
        } else if (service.getConferencesHash(account).containsKey(StringUtils.parseBareAddress(jid))) {
            name = StringUtils.parseResource(jid);
        } else {
            RosterEntry re = item.getEntry();
            if (re != null)
                name = re.getName();
            if (name == null || name.equals(""))
                name = jid;
        }

        TextView left = (TextView) v.findViewById(R.id.left);
        if (left != null) {
            if (i == 0)
                left.setVisibility(View.GONE);
            else
                left.setVisibility(View.VISIBLE);
        }

        TextView right = (TextView) v.findViewById(R.id.right);
        if (right != null) {
            if (i == getCount() - 1)
                right.setVisibility(View.GONE);
            else
                right.setVisibility(View.VISIBLE);
        }

        TextView title = (TextView) v.findViewById(R.id.title);
        title.setText(name);
        if (Colors.isLight)
            title.setTextColor(Color.BLACK);
        else
            title.setTextColor(Color.WHITE);

        v.setOnClickListener(this);
        list.add(new Page(account, jid, v));
    }

    final MyPageAdapter pa = new MyPageAdapter(list);
    ViewPager vp = new ViewPager(activity);
    vp.setAdapter(pa);
    vp.setCurrentItem(current);
    vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i2) {
        }

        @Override
        public void onPageScrollStateChanged(int i) {
        }

        @Override
        public void onPageSelected(final int position) {
            final String jid = pa.getItem(position).getJid();
            final String account = pa.getItem(position).getAccount();
            if (jid == null || account == null || service.getCurrentJid().equals(jid))
                return;

            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(350);
                    } catch (Exception ignored) {
                    }
                    activity.sendBroadcast(new Intent(Constants.CHANGE_CHAT).putExtra("account", account)
                            .putExtra("jid", jid));
                }
            }).start();
        }
    });
    return vp;
}

From source file:com.grottworkshop.gwsmaterialcalendarview.MaterialCalendarView.java

@SuppressWarnings("deprecation")
public MaterialCalendarView(Context context, AttributeSet attrs) {
    super(context, attrs);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        //If we're on good Android versions, turn off clipping for cool effects
        setClipToPadding(false);//from   w w  w.j  a va 2  s .  c  om
        setClipChildren(false);
    } else {
        //Old Android does not like _not_ clipping view pagers, we need to clip
        setClipChildren(true);
        setClipToPadding(true);
    }

    buttonPast = new DirectionButton(getContext());
    title = new TextView(getContext());
    buttonFuture = new DirectionButton(getContext());
    pager = new ViewPager(getContext());

    setupChildren();

    title.setOnClickListener(onClickListener);
    buttonPast.setOnClickListener(onClickListener);
    buttonFuture.setOnClickListener(onClickListener);

    titleChanger = new TitleChanger(title);
    titleChanger.setTitleFormatter(DEFAULT_TITLE_FORMATTER);
    adapter = new MonthPagerAdapter();
    adapter.setTitleFormatter(DEFAULT_TITLE_FORMATTER);
    pager.setAdapter(adapter);
    pager.setOnPageChangeListener(pageChangeListener);
    pager.setPageTransformer(false, new ViewPager.PageTransformer() {
        @Override
        public void transformPage(View page, float position) {
            position = (float) Math.sqrt(1 - Math.abs(position));
            page.setAlpha(position);
        }
    });

    adapter.setCallbacks(monthViewCallbacks);

    TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MaterialCalendarView, 0, 0);
    try {

        int tileSize = a.getDimensionPixelSize(R.styleable.MaterialCalendarView_mcv_tileSize, -1);
        if (tileSize > 0) {
            setTileSize(tileSize);
        }

        setArrowColor(a.getColor(R.styleable.MaterialCalendarView_mcv_arrowColor, Color.BLACK));
        Drawable leftMask = a.getDrawable(R.styleable.MaterialCalendarView_mcv_leftArrowMask);
        if (leftMask == null) {
            //TODO: getDrawable depreciated
            leftMask = getResources().getDrawable(R.drawable.mcv_action_previous);
        }
        setLeftArrowMask(leftMask);
        Drawable rightMask = a.getDrawable(R.styleable.MaterialCalendarView_mcv_rightArrowMask);
        if (rightMask == null) {
            //TODO: getDrawable depreciated
            rightMask = getResources().getDrawable(R.drawable.mcv_action_next);
        }
        setRightArrowMask(rightMask);

        setSelectionColor(
                a.getColor(R.styleable.MaterialCalendarView_mcv_selectionColor, getThemeAccentColor(context)));

        CharSequence[] array = a.getTextArray(R.styleable.MaterialCalendarView_mcv_weekDayLabels);
        if (array != null) {
            setWeekDayFormatter(new ArrayWeekDayFormatter(array));
        }

        array = a.getTextArray(R.styleable.MaterialCalendarView_mcv_monthLabels);
        if (array != null) {
            setTitleFormatter(new MonthArrayTitleFormatter(array));
        }

        setHeaderTextAppearance(a.getResourceId(R.styleable.MaterialCalendarView_mcv_headerTextAppearance,
                R.style.TextAppearance_MaterialCalendarWidget_Header));
        setWeekDayTextAppearance(a.getResourceId(R.styleable.MaterialCalendarView_mcv_weekDayTextAppearance,
                R.style.TextAppearance_MaterialCalendarWidget_WeekDay));
        setDateTextAppearance(a.getResourceId(R.styleable.MaterialCalendarView_mcv_dateTextAppearance,
                R.style.TextAppearance_MaterialCalendarWidget_Date));
        setShowOtherDates(a.getBoolean(R.styleable.MaterialCalendarView_mcv_showOtherDates, false));

        int firstDayOfWeek = a.getInt(R.styleable.MaterialCalendarView_mcv_firstDayOfWeek, -1);
        if (firstDayOfWeek < 0) {
            firstDayOfWeek = CalendarUtils.getInstance().getFirstDayOfWeek();
        }
        setFirstDayOfWeek(firstDayOfWeek);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        a.recycle();
    }

    currentMonth = CalendarDay.today();
    setCurrentDate(currentMonth);

    if (isInEditMode()) {
        removeView(pager);
        MonthView monthView = new MonthView(context, currentMonth, getFirstDayOfWeek());
        monthView.setSelectionColor(getSelectionColor());
        monthView.setDateTextAppearance(adapter.getDateTextAppearance());
        monthView.setWeekDayTextAppearance(adapter.getWeekDayTextAppearance());
        monthView.setShowOtherDates(getShowOtherDates());
        addView(monthView, new LayoutParams(MonthView.DEFAULT_MONTH_TILE_HEIGHT));
    }
}

From source file:roommateapp.info.droid.ActivityBuilding.java

/**
 * first init of the data/*www  . j a  v  a 2 s  .  c o m*/
 */
private void initActivityBuilding(boolean firstInit) {

    // Init time picker
    this.timePickerFragment = new TimePickerFragment(this);

    // Get submitted data for this activity
    this.selectedBuilding = getIntent().getParcelableExtra("selectedBuilding");
    this.checkedOnceForClientUpdate = getIntent().getBooleanExtra("checkedOnceForClientUpdate", true);

    // If this is the first instance go for parsing the file data
    if (firstInit == true || (this.selectedBuilding.getLectureTimes() == null)) {

        if (RoommateConfig.VERBOSE) {
            System.out.println("Debug: first init");
        }

        try {
            this.parser = new XercesParser();
            this.parser.setRoommateFilePath(this.selectedBuilding.getFile().toString());
            this.parser.setBuildingFile(this.selectedBuilding);
            this.parser.parseRoommateFile();

        } catch (SAXException e) {
            e.printStackTrace();
            if (RoommateConfig.VERBOSE) {
                System.out.println("PARSER FAIL, SAXException");
            }
            Intent intent = new Intent(this, ActivityMain.class);
            intent.putExtra("openStd", false);
            startActivity(intent);

        } catch (IOException e) {
            e.printStackTrace();
            if (RoommateConfig.VERBOSE) {
                System.out.println("PARSER FAIL, IOException");
            }
            Intent intent = new Intent(this, ActivityMain.class);
            intent.putExtra("openStd", false);
            startActivity(intent);
        }
    }

    // Does the file contains rooms?
    if (this.selectedBuilding.getRoomListKeySet().isEmpty()) {

        Toast.makeText(getApplicationContext(), getString(R.string.error_norooms), Toast.LENGTH_LONG).show();
        if (RoommateConfig.VERBOSE) {
            System.out.println("WARNING: No rooms where found in this building.");
        }
        finish();

    } else {

        // Get the holidaylist
        //         if (Preferences.isFilterHolidaysOn(getApplicationContext())) {
        //            
        //            parseHolidayfile();
        //         }

        // Set the headline
        TextView headlineActivity = (TextView) findViewById(R.id.TextViewBuildingHeadline);
        headlineActivity.setText(this.selectedBuilding.getBuildingname());
        headlineActivity.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });

        // Set the swipe pages
        // pages.get(0 for free_rooms; 1 for allrooms).findViewById(id) 
        LayoutInflater inflater = LayoutInflater.from(this);
        pages = new ArrayList<View>();

        // Page free_rooms
        View page = inflater.inflate(R.layout.view_free_rooms, null);
        pages.add(page);

        // Page all_rooms
        page = inflater.inflate(R.layout.view_all_rooms, null);
        pages.add(page);

        // Set pages
        BuildingPageAdapter pagerAdapter = new BuildingPageAdapter(pages, this);
        ViewPager viewPager = new ViewPager(this);
        viewPager.setAdapter(pagerAdapter);
        viewPager.setCurrentItem(0);
        ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager);
        mViewPager.setAdapter(pagerAdapter);

        // Displaying filter status
        if (Preferences.isFilterActive(getApplicationContext())) {

            filterActive = Preferences.getFilters(getApplicationContext());
        }

        createListViewAll();

        // Set the current day and time
        setTimebar(DateHelper.getCurrentHour(), DateHelper.getCurrentMinute(),
                DateHelper.translateWeekday(DateHelper.getCurrentDay(this), this));
        this.hours = getHours();
        this.weekdays = this.selectedBuilding.getWeekdaysStrings();
        this.weekdays = DateHelper.translateWeekdays(this.weekdays, this);

        // Check for client updates if the file was open via "open by default" operation 
        if (Preferences.getDefaultFile(getApplicationContext()) != null
                && Preferences.getDefaultFile(getApplicationContext())
                        .equals(this.selectedBuilding.getFile().toString())
                && Preferences.isClientUpdateEnabled(getApplicationContext())
                && !this.checkedOnceForClientUpdate) {

            ClientUpdateChecker updateChecker = new ClientUpdateChecker(this, false);
            updateChecker.execute(getString(R.string.aboutVersion));
        }
    }
}

From source file:edu.rowan.app.fragments.FoodRatingFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    LinearLayout view = new LinearLayout(getActivity());
    view.setOrientation(LinearLayout.VERTICAL);
    // view pager indicator
    TitlePageIndicator pageIndicator = new TitlePageIndicator(getActivity());
    pageIndicator.setBackgroundResource(R.color.rowanBrown);
    fragmentPager = new ViewPager(getActivity());
    fragmentPager.setId(VIEW_PAGER_ID);//from www .  j  ava 2 s .c om
    fragmentAdapter = new FoodRatingAdapter(getChildFragmentManager());
    fragmentPager.setAdapter(fragmentAdapter);
    //View view = inflater.inflate(R.layout.activity_main, container, false);

    pageIndicator.setViewPager(fragmentPager);
    view.addView(pageIndicator);
    view.addView(fragmentPager);
    return view;
}

From source file:org.telegramsecureplus.ui.Components.EmojiView.java

public EmojiView(boolean needStickers, Context context) {
    super(context);

    showStickers = needStickers;/*from  w  w  w . j  a v a 2  s.com*/

    for (int i = 0; i < Emoji.data.length; i++) {
        GridView gridView = new GridView(context);
        if (AndroidUtilities.isTablet()) {
            gridView.setColumnWidth(AndroidUtilities.dp(60));
        } else {
            gridView.setColumnWidth(AndroidUtilities.dp(45));
        }
        gridView.setNumColumns(-1);
        views.add(gridView);

        EmojiGridAdapter emojiGridAdapter = new EmojiGridAdapter(Emoji.data[i]);
        gridView.setAdapter(emojiGridAdapter);
        AndroidUtilities.setListViewEdgeEffectColor(gridView, 0xfff5f6f7);
        adapters.add(emojiGridAdapter);
    }

    if (showStickers) {
        StickersQuery.checkStickers();
        GridView gridView = new GridView(context);
        gridView.setColumnWidth(AndroidUtilities.dp(72));
        gridView.setNumColumns(-1);
        gridView.setPadding(0, AndroidUtilities.dp(4), 0, 0);
        gridView.setClipToPadding(false);
        views.add(gridView);
        stickersGridAdapter = new StickersGridAdapter(context);
        gridView.setAdapter(stickersGridAdapter);
        AndroidUtilities.setListViewEdgeEffectColor(gridView, 0xfff5f6f7);

        stickersWrap = new FrameLayout(context);
        stickersWrap.addView(gridView);

        TextView textView = new TextView(context);
        textView.setText(LocaleController.getString("NoStickers", R.string.NoStickers));
        textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
        textView.setTextColor(0xff888888);
        stickersWrap.addView(textView,
                LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER));
        gridView.setEmptyView(textView);

        scrollSlidingTabStrip = new ScrollSlidingTabStrip(context) {

            boolean startedScroll;
            float lastX;
            float lastTranslateX;
            boolean first = true;

            @Override
            public boolean onInterceptTouchEvent(MotionEvent ev) {
                if (getParent() != null) {
                    getParent().requestDisallowInterceptTouchEvent(true);
                }
                return super.onInterceptTouchEvent(ev);
            }

            @Override
            public boolean onTouchEvent(MotionEvent ev) {
                if (Build.VERSION.SDK_INT >= 11) {
                    if (first) {
                        first = false;
                        lastX = ev.getX();
                    }
                    float newTranslationX = ViewProxy.getTranslationX(scrollSlidingTabStrip);
                    if (scrollSlidingTabStrip.getScrollX() == 0 && newTranslationX == 0) {
                        if (!startedScroll && lastX - ev.getX() < 0) {
                            if (pager.beginFakeDrag()) {
                                startedScroll = true;
                                lastTranslateX = ViewProxy.getTranslationX(scrollSlidingTabStrip);
                            }
                        } else if (startedScroll && lastX - ev.getX() > 0) {
                            if (pager.isFakeDragging()) {
                                pager.endFakeDrag();
                                startedScroll = false;
                            }
                        }
                    }
                    if (startedScroll) {
                        int dx = (int) (ev.getX() - lastX + newTranslationX - lastTranslateX);
                        try {
                            pager.fakeDragBy(dx);
                            lastTranslateX = newTranslationX;
                        } catch (Exception e) {
                            try {
                                pager.endFakeDrag();
                            } catch (Exception e2) {
                                //don't promt
                            }
                            startedScroll = false;
                            FileLog.e("tmessages", e);
                        }
                    }
                    lastX = ev.getX();
                    if (ev.getAction() == MotionEvent.ACTION_CANCEL
                            || ev.getAction() == MotionEvent.ACTION_UP) {
                        first = true;
                        if (startedScroll) {
                            pager.endFakeDrag();
                            startedScroll = false;
                        }
                    }
                    return startedScroll || super.onTouchEvent(ev);
                }
                return super.onTouchEvent(ev);
            }
        };
        scrollSlidingTabStrip.setUnderlineHeight(AndroidUtilities.dp(1));
        scrollSlidingTabStrip.setIndicatorColor(0xffe2e5e7);
        scrollSlidingTabStrip.setUnderlineColor(0xffe2e5e7);
        addView(scrollSlidingTabStrip,
                LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, Gravity.LEFT | Gravity.TOP));
        ViewProxy.setTranslationX(scrollSlidingTabStrip, AndroidUtilities.displaySize.x);
        updateStickerTabs();
        scrollSlidingTabStrip.setDelegate(new ScrollSlidingTabStrip.ScrollSlidingTabStripDelegate() {
            @Override
            public void onPageSelected(int page) {
                if (page == 0) {
                    pager.setCurrentItem(0);
                    return;
                } else if (page == 1 && !recentStickers.isEmpty()) {
                    views.get(6).setSelection(0);
                    return;
                }
                int index = page - (recentStickers.isEmpty() ? 1 : 2);
                if (index >= stickerSets.size()) {
                    index = stickerSets.size() - 1;
                }
                views.get(6).setSelection(stickersGridAdapter.getPositionForPack(stickerSets.get(index)));
            }
        });

        gridView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {

            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
                    int totalItemCount) {
                int count = view.getChildCount();
                for (int a = 0; a < count; a++) {
                    View child = view.getChildAt(a);
                    if (child.getHeight() + child.getTop() < AndroidUtilities.dp(5)) {
                        firstVisibleItem++;
                    } else {
                        break;
                    }
                }
                scrollSlidingTabStrip
                        .onPageScrolled(stickersGridAdapter.getTabForPosition(firstVisibleItem) + 1, 0);
            }
        });
    }

    setBackgroundColor(0xfff5f6f7);

    pager = new ViewPager(context) {
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            if (getParent() != null) {
                getParent().requestDisallowInterceptTouchEvent(true);
            }
            return super.onInterceptTouchEvent(ev);
        }
    };
    pager.setAdapter(new EmojiPagesAdapter());

    pagerSlidingTabStripContainer = new LinearLayout(context) {
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            if (getParent() != null) {
                getParent().requestDisallowInterceptTouchEvent(true);
            }
            return super.onInterceptTouchEvent(ev);
        }
    };
    pagerSlidingTabStripContainer.setOrientation(LinearLayout.HORIZONTAL);
    pagerSlidingTabStripContainer.setBackgroundColor(0xfff5f6f7);
    addView(pagerSlidingTabStripContainer, LayoutHelper.createFrame(LayoutParams.MATCH_PARENT, 48));

    PagerSlidingTabStrip pagerSlidingTabStrip = new PagerSlidingTabStrip(context);
    pagerSlidingTabStrip.setViewPager(pager);
    pagerSlidingTabStrip.setShouldExpand(true);
    pagerSlidingTabStrip.setIndicatorHeight(AndroidUtilities.dp(2));
    pagerSlidingTabStrip.setUnderlineHeight(AndroidUtilities.dp(1));
    pagerSlidingTabStrip.setIndicatorColor(0xff2b96e2);
    pagerSlidingTabStrip.setUnderlineColor(0xffe2e5e7);
    pagerSlidingTabStripContainer.addView(pagerSlidingTabStrip, LayoutHelper.createLinear(0, 48, 1.0f));
    pagerSlidingTabStrip.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            EmojiView.this.onPageScrolled(position, getMeasuredWidth(), positionOffsetPixels);
        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    FrameLayout frameLayout = new FrameLayout(context);
    pagerSlidingTabStripContainer.addView(frameLayout, LayoutHelper.createLinear(52, 48));

    backspaceButton = new ImageView(context) {
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                backspacePressed = true;
                backspaceOnce = false;
                postBackspaceRunnable(350);
            } else if (event.getAction() == MotionEvent.ACTION_CANCEL
                    || event.getAction() == MotionEvent.ACTION_UP) {
                backspacePressed = false;
                if (!backspaceOnce) {
                    if (EmojiView.this.listener != null && EmojiView.this.listener.onBackspace()) {
                        backspaceButton.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP);
                    }
                }
            }
            super.onTouchEvent(event);
            return true;
        }
    };
    backspaceButton.setImageResource(R.drawable.ic_smiles_backspace);
    backspaceButton.setBackgroundResource(R.drawable.ic_emoji_backspace);
    backspaceButton.setScaleType(ImageView.ScaleType.CENTER);
    frameLayout.addView(backspaceButton, LayoutHelper.createFrame(52, 48));

    View view = new View(context);
    view.setBackgroundColor(0xffe2e5e7);
    frameLayout.addView(view, LayoutHelper.createFrame(52, 1, Gravity.LEFT | Gravity.BOTTOM));

    recentsWrap = new FrameLayout(context);
    recentsWrap.addView(views.get(0));

    TextView textView = new TextView(context);
    textView.setText(LocaleController.getString("NoRecent", R.string.NoRecent));
    textView.setTextSize(18);
    textView.setTextColor(0xff888888);
    textView.setGravity(Gravity.CENTER);
    recentsWrap.addView(textView);
    views.get(0).setEmptyView(textView);

    addView(pager, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT,
            Gravity.LEFT | Gravity.TOP, 0, 48, 0, 0));

    loadRecents();

    if (Emoji.data[0] == null || Emoji.data[0].length == 0) {
        pager.setCurrentItem(1);
    }
}

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  ww.ja  v a2s.  co  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;
}