Search in sources :

Example 1 with MyPopupMenu

use of com.foobnix.pdf.info.view.MyPopupMenu in project LibreraReader by foobnix.

the class DocumentWrapperUI method doChooseNextType.

public void doChooseNextType(View view) {
    final MyPopupMenu popupMenu = new MyPopupMenu(view.getContext(), view);
    String pages = dc.getString(R.string.by_pages);
    String screen = dc.getString(R.string.of_screen).toLowerCase(Locale.US);
    String screens = dc.getString(R.string.by_screans);
    final List<Integer> values = Arrays.asList(AppState.NEXT_SCREEN_SCROLL_BY_PAGES, 100, 95, 75, 50, 25, 10);
    for (int i = 0; i < values.size(); i++) {
        final int n = i;
        String name = i == AppState.NEXT_SCREEN_SCROLL_BY_PAGES ? pages : values.get(i) + "% " + screen;
        if (values.get(i) == 100) {
            name = screens;
        }
        popupMenu.getMenu().add(name).setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                AppState.get().nextScreenScrollBy = values.get(n);
                initNextType();
                Keyboards.hideNavigation(dc.getActivity());
                return false;
            }
        });
    }
    popupMenu.getMenu().add(R.string.custom_value).setOnMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Activity a = dc.getActivity();
            final AlertDialog.Builder builder = new AlertDialog.Builder(a);
            builder.setTitle(R.string.custom_value);
            final CustomSeek myValue = new CustomSeek(a);
            myValue.init(1, 100, AppState.get().nextScreenScrollMyValue);
            myValue.setOnSeekChanged(new IntegerResponse() {

                @Override
                public boolean onResultRecive(int result) {
                    AppState.get().nextScreenScrollMyValue = result;
                    myValue.setValueText(AppState.get().nextScreenScrollMyValue + "%");
                    return false;
                }
            });
            myValue.setValueText(AppState.get().nextScreenScrollMyValue + "%");
            builder.setView(myValue);
            builder.setPositiveButton(R.string.apply, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    AppState.get().nextScreenScrollBy = AppState.get().nextScreenScrollMyValue;
                    initNextType();
                    Keyboards.hideNavigation(dc.getActivity());
                }
            });
            builder.setNegativeButton(R.string.cancel, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            });
            builder.show();
            return false;
        }
    });
    popupMenu.show();
}
Also used : AlertDialog(android.app.AlertDialog) CustomSeek(com.foobnix.pdf.info.view.CustomSeek) IntegerResponse(com.foobnix.android.utils.IntegerResponse) DialogInterface(android.content.DialogInterface) OnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener) Activity(android.app.Activity) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu) MenuItem(android.view.MenuItem) OnClickListener(android.content.DialogInterface.OnClickListener)

Example 2 with MyPopupMenu

use of com.foobnix.pdf.info.view.MyPopupMenu in project LibreraReader by foobnix.

the class HorizontalViewActivity method onCreate.

@Override
protected void onCreate(final Bundle savedInstanceState) {
    intetrstialTimeoutSec = ADS.FULL_SCREEN_TIMEOUT_SEC;
    LOG.d("getRequestedOrientation", AppState.get().orientation, getRequestedOrientation());
    handler = new Handler();
    handlerTimer = new Handler();
    flippingHandler = new Handler();
    flippingTimer = 0;
    long crateBegin = System.currentTimeMillis();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    BrightnessHelper.applyBrigtness(this);
    if (AppState.get().isDayNotInvert) {
        setTheme(R.style.StyledIndicatorsWhite);
    } else {
        setTheme(R.style.StyledIndicatorsBlack);
    }
    DocumentController.doRotation(this);
    clickUtils = new ClickUtils();
    super.onCreate(savedInstanceState);
    if (PasswordDialog.isNeedPasswordDialog(this)) {
        return;
    }
    boolean isTextFomat = ExtUtils.isTextFomat(getIntent());
    AppState.get().load(this);
    // AppState.get().isCut = false;
    PageImageState.get().isShowCuttingLine = false;
    PageImageState.get().cleanSelectedWords();
    setContentView(R.layout.activity_horiziontal_view);
    Android6.checkPermissions(this);
    viewPager = (VerticalViewPager) findViewById(R.id.pager);
    overlay = findViewById(R.id.overlay);
    overlay.setVisibility(View.VISIBLE);
    progressDraw = (ProgressDraw) findViewById(R.id.progressDraw);
    actionBar = (LinearLayout) findViewById(R.id.actionBar);
    bottomBar = findViewById(R.id.bottomBar);
    bottomIndicators = findViewById(R.id.bottomIndicators);
    adFrame = findViewById(R.id.adFrame);
    anchor = (FrameLayout) findViewById(R.id.anchor);
    moveCenter = findViewById(R.id.moveCenter);
    currentSeek = (TextView) findViewById(R.id.currentSeek);
    maxSeek = (TextView) findViewById(R.id.maxSeek);
    toastBrightnessText = (TextView) findViewById(R.id.toastBrightnessText);
    toastBrightnessText.setVisibility(View.GONE);
    TintUtil.setDrawableTint(toastBrightnessText.getCompoundDrawables()[0], Color.WHITE);
    modeName = (TextView) findViewById(R.id.modeName);
    modeName.setText(AppState.get().nameHorizontalMode);
    pagesCountIndicator = (TextView) findViewById(R.id.pagesCountIndicator);
    flippingIntervalView = (TextView) findViewById(R.id.flippingIntervalView);
    pagesTime = (TextView) findViewById(R.id.pagesTime);
    pagesPower = (TextView) findViewById(R.id.pagesPower);
    linkHistory = (ImageView) findViewById(R.id.linkHistory);
    onMove = (ImageView) findViewById(R.id.onMove);
    onMove.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DragingDialogs.onMoveDialog(anchor, dc, onRefresh, reloadDoc);
        }
    });
    currentSeek.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            Dialogs.showDeltaPage(anchor, dc, dc.getCurentPageFirst1(), onRefresh);
            return true;
        }
    });
    maxSeek.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            Dialogs.showDeltaPage(anchor, dc, dc.getCurentPageFirst1(), onRefresh);
            return true;
        }
    });
    updateSeekBarColorAndSize();
    titleTxt = (TextView) findViewById(R.id.title);
    chapterView = (TextView) findViewById(R.id.chapter);
    linkHistory.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            dc.onLinkHistory();
            showHideHistory();
        }
    });
    linkHistory.setVisibility(View.GONE);
    seekBar = (SeekBar) findViewById(R.id.seekBar);
    if (AppState.get().isRTL) {
        if (Build.VERSION.SDK_INT >= 11) {
            seekBar.setRotation(180);
        }
    }
    onPageFlip1 = findViewById(R.id.autoScroll);
    onPageFlip1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DragingDialogs.pageFlippingDialog(anchor, dc, onRefresh);
        }
    });
    final ImageView onFullScreen = (ImageView) findViewById(R.id.onFullScreen);
    onFullScreen.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AppState.get().isFullScreen = !AppState.get().isFullScreen;
            onFullScreen.setImageResource(AppState.get().isFullScreen ? R.drawable.glyphicons_487_fit_frame_to_image : R.drawable.glyphicons_488_fit_image_to_frame);
            DocumentController.chooseFullScreen(HorizontalViewActivity.this, AppState.get().isFullScreen);
            if (dc.isTextFormat()) {
                if (onRefresh != null) {
                    onRefresh.run();
                }
                nullAdapter();
                dc.restartActivity();
            }
        }
    });
    onFullScreen.setImageResource(AppState.get().isFullScreen ? R.drawable.glyphicons_487_fit_frame_to_image : R.drawable.glyphicons_488_fit_image_to_frame);
    ImageView dayNightButton = (ImageView) findViewById(R.id.bookNight);
    dayNightButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            v.setEnabled(false);
            AppState.get().isDayNotInvert = !AppState.get().isDayNotInvert;
            nullAdapter();
            dc.restartActivity();
        }
    });
    if (Dips.isEInk(this)) {
        dayNightButton.setVisibility(View.GONE);
        AppState.get().isDayNotInvert = true;
    }
    onBC = (UnderlineImageView) findViewById(R.id.onBC);
    onBC.underline(AppState.get().isEnableBC);
    onBC.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.contrastAndBrigtness(anchor, dc, reloadDocBrigntness, reloadDoc);
        }
    });
    dayNightButton.setImageResource(!AppState.get().isDayNotInvert ? R.drawable.glyphicons_232_sun : R.drawable.glyphicons_2_moon);
    moveCenter.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            authoFit();
        }
    });
    onBC.setVisibility(isTextFomat ? View.GONE : View.VISIBLE);
    if (DocumentController.isEinkOrMode(this)) {
        onBC.setVisibility(View.VISIBLE);
    }
    onMove.setVisibility(DocumentController.isEinkOrMode(this) && !isTextFomat ? View.VISIBLE : View.GONE);
    findViewById(R.id.thumbnail).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.thumbnailDialog(anchor, dc);
        }
    });
    findViewById(R.id.onShowSearch).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            showSearchDialog();
        }
    });
    outline = (ImageView) findViewById(R.id.onDocDontext);
    outline.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.showContent(anchor, dc);
        }
    });
    findViewById(R.id.onBookmarks).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.addBookmarks(anchor, dc, new Runnable() {

                @Override
                public void run() {
                    showHideHistory();
                }
            });
        }
    });
    findViewById(R.id.onBookmarks).setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(final View arg0) {
            DragingDialogs.addBookmarksLong(anchor, dc);
            return true;
        }
    });
    findViewById(R.id.onRecent).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.recentBooks(anchor, dc);
        }
    });
    textToSpeach = (ImageView) findViewById(R.id.textToSpeach);
    textToSpeach.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            LOG.d("bookTTS", AppState.get().isDoubleCoverAlone, AppState.get().isDouble, AppState.get().isCut);
            if (AppState.get().isDouble || AppState.get().isCut) {
                modeOnePage();
                return;
            }
            DragingDialogs.textToSpeachDialog(anchor, dc);
        }
    });
    ttsActive = (ImageView) findViewById(R.id.ttsActive);
    onTTSStatus(null);
    ttsActive.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.textToSpeachDialog(anchor, dc);
        }
    });
    ttsActive.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            Vibro.vibrate();
            TTSEngine.get().stop();
            ttsActive.setVisibility(View.GONE);
            return true;
        }
    });
    onModeChange = (ImageView) findViewById(R.id.onModeChange);
    onModeChange.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            MyPopupMenu p = new MyPopupMenu(v.getContext(), v);
            p.getMenu().add(R.string.one_page).setIcon(R.drawable.glyphicons_two_page_one).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    closeDialogs();
                    onModeChange.setImageResource(R.drawable.glyphicons_two_page_one);
                    AppState.get().isDouble = false;
                    AppState.get().isDoubleCoverAlone = false;
                    AppState.get().isCut = false;
                    SettingsManager.getBookSettings().updateFromAppState();
                    if (dc.isTextFormat()) {
                        nullAdapter();
                        dc.restartActivity();
                        dc.cleanImageMatrix();
                    } else {
                        TTSEngine.get().stop();
                        dc.cleanImageMatrix();
                        reloadDoc.run();
                        authoFit();
                    }
                    return false;
                }
            });
            p.getMenu().add(R.string.two_pages).setIcon(R.drawable.glyphicons_two_pages_12).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    closeDialogs();
                    onModeChange.setImageResource(R.drawable.glyphicons_two_pages_12);
                    AppState.get().isDouble = true;
                    AppState.get().isCut = false;
                    AppState.get().isDoubleCoverAlone = false;
                    SettingsManager.getBookSettings().updateFromAppState();
                    if (dc.isTextFormat()) {
                        nullAdapter();
                        dc.restartActivity();
                        dc.cleanImageMatrix();
                    } else {
                        TTSEngine.get().stop();
                        dc.cleanImageMatrix();
                        reloadDoc.run();
                        authoFit();
                    }
                    return false;
                }
            });
            if (!dc.isTextFormat()) {
                p.getMenu().add(R.string.two_pages_cover).setIcon(R.drawable.glyphicons_two_pages_23).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        closeDialogs();
                        onModeChange.setImageResource(R.drawable.glyphicons_two_pages_23);
                        AppState.get().isDouble = true;
                        AppState.get().isCut = false;
                        AppState.get().isDoubleCoverAlone = true;
                        SettingsManager.getBookSettings().updateFromAppState();
                        if (dc.isTextFormat()) {
                            nullAdapter();
                            dc.restartActivity();
                            dc.cleanImageMatrix();
                        } else {
                            TTSEngine.get().stop();
                            dc.cleanImageMatrix();
                            reloadDoc.run();
                            authoFit();
                        }
                        return false;
                    }
                });
            }
            if (!dc.isTextFormat()) {
                p.getMenu().add(R.string.half_page).setIcon(R.drawable.glyphicons_page_split).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        closeDialogs();
                        onModeChange.setImageResource(R.drawable.glyphicons_page_split);
                        AppState.get().isDouble = false;
                        AppState.get().isCut = true;
                        // AppState.get().isCrop = false;
                        SettingsManager.getBookSettings().updateFromAppState();
                        TTSEngine.get().stop();
                        // onCrop.underline(AppState.get().isCrop);
                        dc.cleanImageMatrix();
                        reloadDoc.run();
                        authoFit();
                        return false;
                    }
                });
            }
            p.show();
            Keyboards.hideNavigation(HorizontalViewActivity.this);
        }
    });
    onCrop = (UnderlineImageView) findViewById(R.id.onCrop);
    onCrop.setVisibility(isTextFomat ? View.GONE : View.VISIBLE);
    onCrop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            AppState.get().isCrop = !AppState.get().isCrop;
            SettingsManager.getBookSettings().cropPages = AppState.get().isCrop;
            reloadDoc.run();
            onCrop.underline(AppState.get().isCrop);
            PageImageState.get().isAutoFit = true;
            EventBus.getDefault().post(new MessageAutoFit(viewPager.getCurrentItem()));
        }
    });
    final View bookMenu = findViewById(R.id.bookMenu);
    bookMenu.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            ShareDialog.show(HorizontalViewActivity.this, dc.getCurrentBook(), new Runnable() {

                @Override
                public void run() {
                    if (dc.getCurrentBook().delete()) {
                        TempHolder.listHash++;
                        AppDB.get().deleteBy(dc.getCurrentBook().getPath());
                        dc.getActivity().finish();
                    }
                }
            }, dc.getCurentPage(), null, dc);
            Keyboards.hideNavigation(HorizontalViewActivity.this);
        }
    });
    modeName.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            bookMenu.performClick();
        }
    });
    modeName.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            dc.onChangeTextSelection();
            AppState.get().isEditMode = false;
            hideShow();
            return true;
        }
    });
    findViewById(R.id.bookPref).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            DragingDialogs.preferences(anchor, dc, onRefresh, reloadDoc);
        }
    });
    onClose = findViewById(R.id.bookClose);
    onClose.setVisibility(View.INVISIBLE);
    onClose.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            nullAdapter();
            closeDialogs();
            showInterstial();
        }
    });
    onClose.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(final View v) {
            Vibro.vibrate();
            CloseAppDialog.showOnLongClickDialog(HorizontalViewActivity.this, v, dc);
            return true;
        }
    });
    findViewById(R.id.editTop2).setVisibility(View.GONE);
    findViewById(R.id.nextTypeBootom).setVisibility(View.GONE);
    lockModelImage = (ImageView) findViewById(R.id.lockUnlock);
    lockModelImage.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AppState.get().isLocked = !AppState.get().isLocked;
            updateLockMode();
        }
    });
    updateLockMode();
    Keyboards.hideNavigationOnCreate(HorizontalViewActivity.this);
    currentSeek.setVisibility(View.GONE);
    maxSeek.setVisibility(View.GONE);
    seekBar.setVisibility(View.INVISIBLE);
    bottomIndicators.setVisibility(View.GONE);
    titleTxt.setText(HorizontalModeController.getTempTitle(this));
    loadinAsyncTask = new CopyAsyncTask() {

        AlertDialog dialog;

        private boolean isCancelled = false;

        long start = 0;

        @Override
        protected void onPreExecute() {
            start = System.currentTimeMillis();
            TempHolder.get().loadingCancelled = false;
            dialog = Dialogs.loadingBook(HorizontalViewActivity.this, new Runnable() {

                @Override
                public void run() {
                    isCancelled = true;
                    TempHolder.get().loadingCancelled = true;
                    CacheZipUtils.removeFiles(CacheZipUtils.CACHE_BOOK_DIR.listFiles());
                    finish();
                }
            });
        }

        @Override
        protected Object doInBackground(Object... params) {
            try {
                LOG.d("doRotation(this)", AppState.get().orientation, HorizontalViewActivity.this.getRequestedOrientation());
                try {
                    while (viewPager.getHeight() == 0) {
                        Thread.sleep(250);
                    }
                    int count = 0;
                    if (AppState.get().orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE || AppState.get().orientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) {
                        while (viewPager.getHeight() > viewPager.getWidth() && count < 20) {
                            Thread.sleep(250);
                            count++;
                        }
                    } else if (AppState.get().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT || AppState.get().orientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT) {
                        while (viewPager.getWidth() > viewPager.getHeight() && count < 20) {
                            Thread.sleep(250);
                            count++;
                        }
                    }
                } catch (InterruptedException e) {
                }
                LOG.d("viewPager", viewPager.getHeight() + "x" + viewPager.getWidth());
                initAsync(viewPager.getWidth(), viewPager.getHeight());
            } catch (MuPdfPasswordException e) {
                return -1;
            } catch (RuntimeException e) {
                LOG.e(e);
                return -2;
            }
            return 0;
        }

        @Override
        protected void onCancelled() {
            try {
                if (dialog != null) {
                    dialog.dismiss();
                }
            } catch (Exception e) {
            }
            isCancelled = true;
        }

        @Override
        protected void onPostExecute(Object result) {
            if (LOG.isEnable) {
                long time = System.currentTimeMillis() - start;
            // modeName.setText("" + time / 1000);
            }
            try {
                // onClose.setVisibility(View.VISIBLE);
                LOG.d("RESULT", result);
                if (dialog != null) {
                    dialog.dismiss();
                }
            } catch (Exception e) {
            }
            if (isCancelled) {
                LOG.d("Cancelled");
                finish();
                return;
            }
            if ((Integer) result == -2) {
                Toast.makeText(HorizontalViewActivity.this, R.string.msg_unexpected_error, Toast.LENGTH_SHORT).show();
                AppState.get().isEditMode = true;
                hideShow();
                return;
            }
            if ((Integer) result == -1) {
                final EditText input = new EditText(HorizontalViewActivity.this);
                input.setSingleLine(true);
                input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                AlertDialog.Builder dialog = new AlertDialog.Builder(HorizontalViewActivity.this);
                dialog.setTitle(R.string.enter_password);
                dialog.setView(input);
                dialog.setCancelable(false);
                dialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        dc.onCloseActivityFinal(null);
                    }
                });
                dialog.setPositiveButton(R.string.open_file, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        final String txt = input.getText().toString();
                        if (TxtUtils.isNotEmpty(txt)) {
                            dialog.dismiss();
                            dc.onCloseActivityFinal(new Runnable() {

                                @Override
                                public void run() {
                                    getIntent().putExtra(HorizontalModeController.EXTRA_PASSWORD, txt);
                                    startActivity(getIntent());
                                }
                            });
                        } else {
                            dc.onCloseActivityFinal(null);
                        }
                    }
                });
                AlertDialog show = dialog.show();
            } else {
                currentSeek.setVisibility(View.VISIBLE);
                maxSeek.setVisibility(View.VISIBLE);
                seekBar.setVisibility(View.VISIBLE);
                bottomIndicators.setVisibility(View.VISIBLE);
                onModeChange.setVisibility(View.VISIBLE);
                dc.initHandler();
                AppState.get().lastClosedActivity = HorizontalViewActivity.class.getSimpleName();
                AppState.get().lastMode = HorizontalViewActivity.class.getSimpleName();
                LOG.d("lasta save", AppState.get().lastClosedActivity);
                PageImageState.get().isAutoFit = PageImageState.get().needAutoFit;
                if (ExtUtils.isTextFomat(getIntent())) {
                    PageImageState.get().isAutoFit = true;
                // moveCenter.setVisibility(View.GONE);
                } else if (AppState.get().isLockPDF) {
                    // moveCenter.setVisibility(View.VISIBLE);
                    AppState.get().isLocked = true;
                }
                if (ExtUtils.isNoTextLayerForamt(dc.getCurrentBook().getPath())) {
                    TintUtil.setTintImageWithAlpha(textToSpeach, Color.LTGRAY);
                }
                if (dc.isTextFormat()) {
                // TintUtil.setTintImage(lockModelImage, Color.LTGRAY);
                }
                loadUI();
                // AppState.get().isEditMode = false; //remember last
                updateUI(dc.getPageFromUri());
                hideShow();
                EventBus.getDefault().post(new MessageAutoFit(dc.getPageFromUri()));
                seekBar.setOnSeekBarChangeListener(onSeek);
                showHideInfoToolBar();
                testScreenshots();
                isInitPosistion = Dips.screenHeight() > Dips.screenWidth();
                isInitOrientation = AppState.get().orientation;
                updateIconMode();
                onCrop.setVisibility(dc.isTextFormat() ? View.GONE : View.VISIBLE);
                onMove.setVisibility(DocumentController.isEinkOrMode(HorizontalViewActivity.this) && !dc.isTextFormat() ? View.VISIBLE : View.GONE);
                onBC.setVisibility(dc.isTextFormat() ? View.GONE : View.VISIBLE);
                if (Dips.isEInk(dc.getActivity()) || AppState.get().isInkMode) {
                    onBC.setVisibility(View.VISIBLE);
                }
                onCrop.underline(AppState.get().isCrop);
                onCrop.invalidate();
            // RecentUpates.updateAll(HorizontalViewActivity.this);
            }
        }
    };
    loadinAsyncTask.executeOnExecutor(Executors.newSingleThreadExecutor());
    updateIconMode();
    BrightnessHelper.updateOverlay(overlay);
    // 
    tinUI();
    LOG.d("INIT end", (float) (System.currentTimeMillis() - crateBegin) / 1000);
    anchor.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @TargetApi(Build.VERSION_CODES.HONEYCOMB)
        @Override
        public void onGlobalLayout() {
            if (anchor.getVisibility() == View.VISIBLE) {
                adFrame.setVisibility(View.GONE);
                adFrame.setClickable(false);
            } else {
                if (AppState.get().isEditMode) {
                    adFrame.setVisibility(View.VISIBLE);
                    adFrame.setClickable(true);
                } else {
                    adFrame.setVisibility(View.GONE);
                    adFrame.setClickable(false);
                }
            }
            if (Build.VERSION.SDK_INT >= 11) {
                if (anchor.getX() < 0) {
                    anchor.setX(0);
                }
                if (anchor.getY() < 0) {
                    anchor.setY(0);
                }
            }
        }
    });
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) OnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener) OnGlobalLayoutListener(android.view.ViewTreeObserver.OnGlobalLayoutListener) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu) OnLongClickListener(android.view.View.OnLongClickListener) ImageView(android.widget.ImageView) UnderlineImageView(com.foobnix.pdf.info.view.UnderlineImageView) ClickUtils(com.foobnix.sys.ClickUtils) EditText(android.widget.EditText) Handler(android.os.Handler) OnClickListener(android.view.View.OnClickListener) MenuItem(android.view.MenuItem) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) UnderlineImageView(com.foobnix.pdf.info.view.UnderlineImageView) MessageAutoFit(com.foobnix.pdf.search.activity.msg.MessageAutoFit) MuPdfPasswordException(org.ebookdroid.droids.mupdf.codec.exceptions.MuPdfPasswordException) MuPdfPasswordException(org.ebookdroid.droids.mupdf.codec.exceptions.MuPdfPasswordException) CopyAsyncTask(com.foobnix.pdf.CopyAsyncTask) OnClickListener(android.view.View.OnClickListener) OnLongClickListener(android.view.View.OnLongClickListener) TargetApi(android.annotation.TargetApi)

Example 3 with MyPopupMenu

use of com.foobnix.pdf.info.view.MyPopupMenu in project LibreraReader by foobnix.

the class BrowseFragment2 method popupMenu.

private void popupMenu(final ImageView onGridList) {
    MyPopupMenu p = new MyPopupMenu(getActivity(), onGridList);
    PopupHelper.addPROIcon(p, getActivity());
    List<Integer> names = Arrays.asList(R.string.list, R.string.compact, R.string.grid, R.string.cover);
    final List<Integer> icons = Arrays.asList(R.drawable.glyphicons_114_justify, R.drawable.glyphicons_114_justify_compact, R.drawable.glyphicons_156_show_big_thumbnails, R.drawable.glyphicons_157_show_thumbnails);
    final List<Integer> actions = Arrays.asList(AppState.MODE_LIST, AppState.MODE_LIST_COMPACT, AppState.MODE_GRID, AppState.MODE_COVERS);
    for (int i = 0; i < names.size(); i++) {
        final int index = i;
        p.getMenu().add(names.get(i)).setIcon(icons.get(i)).setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                AppState.get().broseMode = actions.get(index);
                onGridList.setImageResource(icons.get(index));
                onGridList();
                return false;
            }
        });
    }
    p.show();
}
Also used : OnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu) MenuItem(android.view.MenuItem)

Example 4 with MyPopupMenu

use of com.foobnix.pdf.info.view.MyPopupMenu in project LibreraReader by foobnix.

the class PrefFragment2 method onCreateView.

@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
    inflate = inflater.inflate(R.layout.preferences, container, false);
    // tabs position
    final DragLinearLayout dragLinearLayout = (DragLinearLayout) inflate.findViewById(R.id.dragLinearLayout);
    final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(Dips.dpToPx(2), Dips.dpToPx(2), Dips.dpToPx(2), Dips.dpToPx(2));
    final Runnable dragLinear = new Runnable() {

        @Override
        public void run() {
            dragLinearLayout.removeAllViews();
            for (UITab tab : UITab.getOrdered(AppState.get().tabsOrder)) {
                View library = LayoutInflater.from(getActivity()).inflate(R.layout.item_tab_line, null, false);
                ((TextView) library.findViewById(R.id.text1)).setText(tab.getName());
                ((CheckBox) library.findViewById(R.id.isVisible)).setChecked(tab.isVisible());
                ((ImageView) library.findViewById(R.id.image1)).setImageResource(tab.getIcon());
                TintUtil.setTintImageWithAlpha(((ImageView) library.findViewById(R.id.image1)), TintUtil.COLOR_TINT_GRAY);
                library.setTag(tab.getIndex());
                dragLinearLayout.addView(library, layoutParams);
            }
            for (int i = 0; i < dragLinearLayout.getChildCount(); i++) {
                View child = dragLinearLayout.getChildAt(i);
                View handle = child.findViewById(R.id.imageDrag);
                dragLinearLayout.setViewDraggable(child, handle);
            }
        }
    };
    dragLinear.run();
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.tabsApply)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AppState.get().tabsOrder = "";
            for (int i = 0; i < dragLinearLayout.getChildCount(); i++) {
                View child = dragLinearLayout.getChildAt(i);
                boolean isVisible = ((CheckBox) child.findViewById(R.id.isVisible)).isChecked();
                AppState.get().tabsOrder += child.getTag() + "#" + (isVisible ? "1" : "0") + ",";
            }
            AppState.get().tabsOrder = TxtUtils.replaceLast(AppState.get().tabsOrder, ",", "");
            LOG.d("tabsApply", AppState.get().tabsOrder);
            AppState.get().save(getActivity());
            onTheme();
        }
    });
    final CheckBox isshowPrefAsMenu = (CheckBox) inflate.findViewById(R.id.isshowPrefAsMenu);
    isshowPrefAsMenu.setChecked(AppState.get().tabsOrder.contains(UITab.PrefFragment.index + "#0"));
    isshowPrefAsMenu.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                AppState.get().tabsOrder = AppState.get().tabsOrder.replace(UITab.PrefFragment.index + "#1", UITab.PrefFragment.index + "#0");
            } else {
                AppState.get().tabsOrder = AppState.get().tabsOrder.replace(UITab.PrefFragment.index + "#0", UITab.PrefFragment.index + "#1");
            }
            dragLinear.run();
        }
    });
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.tabsDefaul)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AlertDialogs.showOkDialog(getActivity(), getActivity().getString(R.string.restore_defaults_full), new Runnable() {

                @Override
                public void run() {
                    AppState.get().tabsOrder = AppState.DEFAULTS_TABS_ORDER;
                    isshowPrefAsMenu.setChecked(false);
                    dragLinear.run();
                }
            });
        }
    });
    // tabs position
    section1 = inflate.findViewById(R.id.section1);
    section2 = inflate.findViewById(R.id.section2);
    section3 = inflate.findViewById(R.id.section3);
    section4 = inflate.findViewById(R.id.section4);
    section5 = inflate.findViewById(R.id.section5);
    section6 = inflate.findViewById(R.id.section6);
    section7 = inflate.findViewById(R.id.section7);
    onTintChanged();
    final int max = Dips.pxToDp(Dips.screenMinWH() / 2) - 2 * 4;
    final CustomSeek coverSmallSize = (CustomSeek) inflate.findViewById(R.id.coverSmallSize);
    coverSmallSize.init(40, max, AppState.get().coverSmallSize);
    coverSmallSize.setOnSeekChanged(new IntegerResponse() {

        @Override
        public boolean onResultRecive(int result) {
            TempHolder.listHash++;
            AppState.get().coverSmallSize = result;
            return false;
        }
    });
    final CustomSeek coverBigSize = (CustomSeek) inflate.findViewById(R.id.coverBigSize);
    coverBigSize.init(40, Math.max(max, AppState.get().coverBigSize), AppState.get().coverBigSize);
    coverBigSize.setOnSeekChanged(new IntegerResponse() {

        @Override
        public boolean onResultRecive(int result) {
            TempHolder.listHash++;
            AppState.get().coverBigSize = result;
            return false;
        }
    });
    final TextView columsCount = (TextView) inflate.findViewById(R.id.columsCount);
    columsCount.setText("" + Dips.screenWidthDP() / AppState.get().coverBigSize);
    TxtUtils.underlineTextView(columsCount);
    columsCount.setOnClickListener(new OnClickListener() {

        @SuppressLint("NewApi")
        @Override
        public void onClick(View v) {
            PopupMenu p = new PopupMenu(getContext(), columsCount);
            for (int i = 1; i <= 8; i++) {
                final int k = i;
                p.getMenu().add("" + k).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        int result = Dips.screenWidthDP() / k - 8;
                        TempHolder.listHash++;
                        AppState.get().coverBigSize = result;
                        columsCount.setText("" + k);
                        TxtUtils.underlineTextView(columsCount);
                        coverBigSize.init(40, Math.max(max, AppState.get().coverBigSize), AppState.get().coverBigSize);
                        return false;
                    }
                });
            }
            p.show();
        }
    });
    final TextView columsDefaul = (TextView) inflate.findViewById(R.id.columsDefaul);
    TxtUtils.underlineTextView(columsDefaul);
    columsDefaul.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AlertDialogs.showOkDialog(getActivity(), getActivity().getString(R.string.restore_defaults_full), new Runnable() {

                @Override
                public void run() {
                    IMG.clearDiscCache();
                    IMG.clearMemoryCache();
                    AppState.get().coverBigSize = (int) (((Dips.screenWidthDP() / (Dips.screenWidthDP() / 120)) - 8) * (Dips.isXLargeScreen() ? 1.5f : 1));
                    AppState.get().coverSmallSize = 80;
                    TempHolder.listHash++;
                    columsCount.setText("" + Dips.screenWidthDP() / AppState.get().coverBigSize);
                    TxtUtils.underlineTextView(columsCount);
                    coverSmallSize.init(40, max, AppState.get().coverSmallSize);
                    coverBigSize.init(40, Math.max(max, AppState.get().coverBigSize), AppState.get().coverBigSize);
                }
            });
        }
    });
    final ScrollView scrollView = (ScrollView) inflate.findViewById(R.id.scroll);
    scrollView.setVerticalScrollBarEnabled(false);
    ((TextView) inflate.findViewById(R.id.section6)).setText(String.format("%s: %s", getString(R.string.product), AppsConfig.TXT_APP_NAME));
    try {
        PackageInfo packageInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
        final String version = packageInfo.versionName;
        ((TextView) inflate.findViewById(R.id.pVersion)).setText(String.format("%s: %s (%s)", getString(R.string.version), version, AppsConfig.MUPDF_VERSION));
    } catch (final NameNotFoundException e) {
    }
    TextView onCloseApp = (TextView) inflate.findViewById(R.id.onCloseApp);
    TxtUtils.underlineTextView(onCloseApp);
    onCloseApp.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ((MainTabs2) getActivity()).showInterstial();
        }
    });
    final TextView onFullScreen = (TextView) inflate.findViewById(R.id.fullscreen);
    onFullScreen.setText(AppState.get().isFullScreenMain ? R.string.yes : R.string.no);
    TxtUtils.underlineTextView(onFullScreen);
    onFullScreen.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            MyPopupMenu popup = new MyPopupMenu(getActivity(), v);
            popup.getMenu().add(R.string.yes).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    AppState.get().isFullScreenMain = true;
                    onFullScreen.setText(R.string.yes);
                    TxtUtils.underlineTextView(onFullScreen);
                    DocumentController.chooseFullScreen(getActivity(), AppState.get().isFullScreenMain);
                    return false;
                }
            });
            popup.getMenu().add(R.string.no).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    AppState.get().isFullScreenMain = false;
                    onFullScreen.setText(R.string.no);
                    TxtUtils.underlineTextView(onFullScreen);
                    DocumentController.chooseFullScreen(getActivity(), AppState.get().isFullScreenMain);
                    return false;
                }
            });
            popup.show();
        }
    });
    screenOrientation = (TextView) inflate.findViewById(R.id.screenOrientation);
    screenOrientation.setText(DocumentController.getRotationText());
    TxtUtils.underlineTextView(screenOrientation);
    screenOrientation.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            PopupMenu menu = new PopupMenu(v.getContext(), v);
            for (int i = 0; i < DocumentController.orientationIds.size(); i++) {
                final int j = i;
                final int name = DocumentController.orientationTexts.get(i);
                menu.getMenu().add(name).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        AppState.get().orientation = DocumentController.orientationIds.get(j);
                        screenOrientation.setText(DocumentController.orientationTexts.get(j));
                        TxtUtils.underlineTextView(screenOrientation);
                        DocumentController.doRotation(getActivity());
                        return false;
                    }
                });
            }
            menu.show();
        }
    });
    // inflate.findViewById(R.id.onHelpTranslate).setOnClickListener(new
    // OnClickListener() {
    // 
    // @Override
    // public void onClick(final View v) {
    // Urls.open(getActivity(),
    // "https://www.dropbox.com/sh/8el7kon2sbx46w8/xm3qoHYT7n");
    // }
    // });
    inflate.findViewById(R.id.onKeyCode).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            new KeyCodeDialog(getActivity(), onCloseDialog);
        }
    });
    themeColor = (TextView) inflate.findViewById(R.id.themeColor);
    themeColor.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            PopupMenu p = new PopupMenu(getContext(), themeColor);
            p.getMenu().add(R.string.light).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    AppState.get().isWhiteTheme = true;
                    AppState.get().isInkMode = false;
                    AppState.get().contrastImage = 0;
                    AppState.get().brigtnessImage = 0;
                    AppState.get().bolderTextOnImage = false;
                    AppState.get().isEnableBC = false;
                    AppState.get().save(getActivity());
                    IMG.clearDiscCache();
                    IMG.clearMemoryCache();
                    onTheme();
                    return false;
                }
            });
            p.getMenu().add(R.string.black).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    AppState.get().isWhiteTheme = false;
                    AppState.get().isInkMode = false;
                    AppState.get().contrastImage = 0;
                    AppState.get().brigtnessImage = 0;
                    AppState.get().bolderTextOnImage = false;
                    AppState.get().isEnableBC = false;
                    AppState.get().save(getActivity());
                    IMG.clearDiscCache();
                    IMG.clearMemoryCache();
                    onTheme();
                    return false;
                }
            });
            p.getMenu().add("Ink").setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    IMG.clearDiscCache();
                    IMG.clearMemoryCache();
                    onEink();
                    return false;
                }
            });
            p.show();
        }
    });
    final TextView hypenLang = (TextView) inflate.findViewById(R.id.appLang);
    hypenLang.setText(DialogTranslateFromTo.getLanuageByCode(AppState.get().appLang));
    TxtUtils.underlineTextView(hypenLang);
    hypenLang.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            final PopupMenu popupMenu = new PopupMenu(v.getContext(), v);
            final List<String> codes = // 
            Arrays.asList(// 
            "en", // 
            "ar", // 
            "de", // 
            "es", // 
            "fa", // 
            "fi", // 
            "fr", // 
            "he", // 
            "hi", // 
            "hu", // 
            "id", // 
            "it", // 
            "ja", // 
            "ko", // 
            "la", // 
            "lt", // 
            "nl", // 
            "no", // 
            "pl", // 
            "pt", // 
            "ro", // 
            "ru", // 
            "sk", // 
            "sv", "sw", "th", "tr", "uk", "vi", "zh");
            List<String> langs = new ArrayList<String>();
            for (String code : codes) {
                langs.add(DialogTranslateFromTo.getLanuageByCode(code) + ":" + code);
            }
            Collections.sort(langs);
            popupMenu.getMenu().add(R.string.system_language).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    TxtUtils.underlineTextView(hypenLang);
                    AppState.get().appLang = AppState.MY_SYSTEM_LANG;
                    TempHolder.get().forseAppLang = true;
                    MyContextWrapper.wrap(getContext());
                    AppState.get().save(getActivity());
                    onTheme();
                    return false;
                }
            });
            for (int i = 0; i < langs.size(); i++) {
                String[] all = langs.get(i).split(":");
                final String name = all[0];
                final String code = all[1];
                popupMenu.getMenu().add(name).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        AppState.get().appLang = code;
                        TxtUtils.underlineTextView(hypenLang);
                        AppState.get().save(getActivity());
                        onTheme();
                        return false;
                    }
                });
            }
            popupMenu.show();
        }
    });
    final TextView appFontScale = (TextView) inflate.findViewById(R.id.appFontScale);
    appFontScale.setText(getFontName(AppState.get().appFontScale));
    TxtUtils.underlineTextView(appFontScale);
    appFontScale.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            final PopupMenu popupMenu = new PopupMenu(v.getContext(), v);
            for (float i = 0.7f; i < 2.1f; i += 0.1) {
                final float number = i;
                popupMenu.getMenu().add(getFontName(number)).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        AppState.get().appFontScale = number;
                        AppState.get().save(getActivity());
                        onTheme();
                        return false;
                    }
                });
            }
            popupMenu.show();
        }
    });
    final TextView onMail = (TextView) inflate.findViewById(R.id.onMailSupport);
    onMail.setText(TxtUtils.underline(getString(R.string.my_email)));
    onMail.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            onEmail();
        }
    });
    rememberMode = (CheckBox) inflate.findViewById(R.id.isRememberMode);
    rememberMode.setChecked(AppState.get().isRememberMode);
    rememberMode.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isRememberMode = isChecked;
        }
    });
    selectedOpenMode = (TextView) inflate.findViewById(R.id.selectedOpenMode);
    selectedOpenMode.setOnClickListener(new OnClickListener() {

        @SuppressLint("NewApi")
        @Override
        public void onClick(View v) {
            if (Build.VERSION.SDK_INT <= 10) {
                Toast.makeText(selectedOpenMode.getContext(), R.string.this_function_will_works_in_modern_android, Toast.LENGTH_SHORT).show();
                return;
            }
            final PopupMenu popupMenu = new PopupMenu(selectedOpenMode.getContext(), selectedOpenMode);
            final MenuItem advanced_mode = popupMenu.getMenu().add(AppState.get().nameVerticalMode);
            advanced_mode.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().isAlwaysOpenAsMagazine = false;
                    AppState.get().isMusicianMode = false;
                    checkOpenWithSpinner();
                    return false;
                }
            });
            final MenuItem easy_mode = popupMenu.getMenu().add(AppState.get().nameHorizontalMode);
            easy_mode.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().isAlwaysOpenAsMagazine = true;
                    AppState.get().isMusicianMode = false;
                    checkOpenWithSpinner();
                    return false;
                }
            });
            final MenuItem music_mode = popupMenu.getMenu().add(AppState.get().nameMusicianMode);
            music_mode.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().isAlwaysOpenAsMagazine = false;
                    AppState.get().isMusicianMode = true;
                    checkOpenWithSpinner();
                    return false;
                }
            });
            popupMenu.show();
        }
    });
    checkOpenWithSpinner();
    final CheckBox isCropBookCovers = (CheckBox) inflate.findViewById(R.id.isCropBookCovers);
    isCropBookCovers.setOnCheckedChangeListener(null);
    isCropBookCovers.setChecked(AppState.get().isCropBookCovers);
    isCropBookCovers.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isCropBookCovers = isChecked;
            TempHolder.listHash++;
        }
    });
    final CheckBox isBookCoverEffect = (CheckBox) inflate.findViewById(R.id.isBookCoverEffect);
    isBookCoverEffect.setOnCheckedChangeListener(null);
    isBookCoverEffect.setChecked(AppState.get().isBookCoverEffect);
    isBookCoverEffect.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isBookCoverEffect = isChecked;
            ImageLoader.getInstance().clearMemoryCache();
            ImageLoader.getInstance().clearDiskCache();
            TempHolder.listHash++;
            if (isChecked) {
                isCropBookCovers.setEnabled(false);
                isCropBookCovers.setChecked(true);
            } else {
                isCropBookCovers.setEnabled(true);
            }
        }
    });
    final CheckBox isBorderAndShadow = (CheckBox) inflate.findViewById(R.id.isBorderAndShadow);
    isBorderAndShadow.setOnCheckedChangeListener(null);
    isBorderAndShadow.setChecked(AppState.get().isBorderAndShadow);
    isBorderAndShadow.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isBorderAndShadow = isChecked;
            TempHolder.listHash++;
        }
    });
    final CheckBox isShowImages = (CheckBox) inflate.findViewById(R.id.isShowImages);
    isShowImages.setOnCheckedChangeListener(null);
    isShowImages.setChecked(AppState.get().isShowImages);
    isShowImages.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isShowImages = isChecked;
            TempHolder.listHash++;
            isCropBookCovers.setEnabled(AppState.get().isShowImages);
            isBookCoverEffect.setEnabled(AppState.get().isShowImages);
            isBorderAndShadow.setEnabled(AppState.get().isShowImages);
        }
    });
    isCropBookCovers.setEnabled(AppState.get().isShowImages);
    isBookCoverEffect.setEnabled(AppState.get().isShowImages);
    isBorderAndShadow.setEnabled(AppState.get().isShowImages);
    CheckBox isLoopAutoplay = (CheckBox) inflate.findViewById(R.id.isLoopAutoplay);
    isLoopAutoplay.setChecked(AppState.get().isLoopAutoplay);
    isLoopAutoplay.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isLoopAutoplay = isChecked;
        }
    });
    CheckBox isOpenLastBook = (CheckBox) inflate.findViewById(R.id.isOpenLastBook);
    isOpenLastBook.setChecked(AppState.get().isOpenLastBook);
    isOpenLastBook.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isOpenLastBook = isChecked;
        }
    });
    CheckBox isShowCloseAppDialog = (CheckBox) inflate.findViewById(R.id.isShowCloseAppDialog);
    isShowCloseAppDialog.setChecked(AppState.get().isShowCloseAppDialog);
    isShowCloseAppDialog.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isShowCloseAppDialog = isChecked;
        }
    });
    final Handler handler = new Handler();
    final Runnable ask = new Runnable() {

        @Override
        public void run() {
            AlertDialogs.showDialog(getActivity(), getActivity().getString(R.string.you_need_to_update_the_library), getString(R.string.ok), new Runnable() {

                @Override
                public void run() {
                    onScan();
                }
            }, null);
        }
    };
    final int timeout = 1500;
    final CheckBox isFirstSurname = (CheckBox) inflate.findViewById(R.id.isFirstSurname);
    isFirstSurname.setChecked(AppState.get().isFirstSurname);
    isFirstSurname.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isFirstSurname = isChecked;
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    final CheckBox isAddKeywordsToGenres = (CheckBox) inflate.findViewById(R.id.isAddKeywordsToGenres);
    isAddKeywordsToGenres.setChecked(AppState.get().isAddKeywordsToGenres);
    isAddKeywordsToGenres.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isAddKeywordsToGenres = isChecked;
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    // //
    ((CheckBox) inflate.findViewById(R.id.supportPDF)).setChecked(AppState.get().supportPDF);
    ((CheckBox) inflate.findViewById(R.id.supportPDF)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportPDF = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportXPS)).setChecked(AppState.get().supportXPS);
    ((CheckBox) inflate.findViewById(R.id.supportXPS)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportXPS = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportDJVU)).setChecked(AppState.get().supportDJVU);
    ((CheckBox) inflate.findViewById(R.id.supportDJVU)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportDJVU = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportEPUB)).setChecked(AppState.get().supportEPUB);
    ((CheckBox) inflate.findViewById(R.id.supportEPUB)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportEPUB = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportFB2)).setChecked(AppState.get().supportFB2);
    ((CheckBox) inflate.findViewById(R.id.supportFB2)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportFB2 = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
            isAddKeywordsToGenres.setVisibility(AppState.get().supportFB2 ? View.VISIBLE : View.GONE);
        }
    });
    isAddKeywordsToGenres.setVisibility(AppState.get().supportFB2 ? View.VISIBLE : View.GONE);
    ((CheckBox) inflate.findViewById(R.id.supportTXT)).setChecked(AppState.get().supportTXT);
    ((CheckBox) inflate.findViewById(R.id.supportTXT)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportTXT = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportMOBI)).setChecked(AppState.get().supportMOBI);
    ((CheckBox) inflate.findViewById(R.id.supportMOBI)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportMOBI = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportRTF)).setChecked(AppState.get().supportRTF);
    ((CheckBox) inflate.findViewById(R.id.supportRTF)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportRTF = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    ((CheckBox) inflate.findViewById(R.id.supportCBZ)).setChecked(AppState.get().supportCBZ);
    ((CheckBox) inflate.findViewById(R.id.supportCBZ)).setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportCBZ = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    CheckBox supportZIP = (CheckBox) inflate.findViewById(R.id.supportZIP);
    supportZIP.setChecked(AppState.get().supportZIP);
    supportZIP.setText(getString(R.string.archives) + " (ZIP/RAR/...)");
    supportZIP.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportZIP = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    CheckBox supportOther = (CheckBox) inflate.findViewById(R.id.supportOther);
    supportOther.setChecked(AppState.get().supportOther);
    supportOther.setText(getString(R.string.other) + " (DOC/CHM/...)");
    supportOther.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().supportOther = isChecked;
            ExtUtils.updateSearchExts();
            handler.removeCallbacks(ask);
            handler.postDelayed(ask, timeout);
        }
    });
    CheckBox isDisplayAllFilesInFolder = (CheckBox) inflate.findViewById(R.id.isDisplayAllFilesInFolder);
    isDisplayAllFilesInFolder.setChecked(AppState.get().isDisplayAllFilesInFolder);
    isDisplayAllFilesInFolder.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isDisplayAllFilesInFolder = isChecked;
            TempHolder.listHash++;
        }
    });
    // app password
    final CheckBox isAppPassword = (CheckBox) inflate.findViewById(R.id.isAppPassword);
    isAppPassword.setChecked(PasswordState.get().isAppPassword);
    isAppPassword.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            PasswordState.get().isAppPassword = isChecked;
            if (isChecked && TxtUtils.isEmpty(PasswordState.get().appPassword)) {
                PasswordDialog.showDialog(getActivity(), true, new Runnable() {

                    @Override
                    public void run() {
                        if (TxtUtils.isEmpty(PasswordState.get().appPassword)) {
                            isAppPassword.setChecked(false);
                        }
                    }
                });
            }
        }
    });
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.appPassword)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            PasswordDialog.showDialog(getActivity(), true, new Runnable() {

                @Override
                public void run() {
                    if (TxtUtils.isEmpty(PasswordState.get().appPassword)) {
                        isAppPassword.setChecked(false);
                    }
                }
            });
        }
    });
    // What is new
    CheckBox showWhatIsNew = (CheckBox) inflate.findViewById(R.id.isShowWhatIsNewDialog);
    showWhatIsNew.setChecked(AppState.get().isShowWhatIsNewDialog);
    showWhatIsNew.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isShowWhatIsNewDialog = isChecked;
        }
    });
    final TextView whatIsNew = (TextView) inflate.findViewById(R.id.whatIsNew);
    whatIsNew.setText(getActivity().getString(R.string.what_is_new_in) + " " + Apps.getApplicationName(getActivity()) + " " + Apps.getVersionName(getActivity()));
    TxtUtils.underlineTextView(whatIsNew);
    whatIsNew.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            AndroidWhatsNew.show(getActivity());
        }
    });
    // /
    // BrightnessHelper.controlsWrapper(inflate, getActivity());
    nextKeys = (TextView) inflate.findViewById(R.id.textNextKeys);
    prevKeys = (TextView) inflate.findViewById(R.id.textPrevKeys);
    ch = (CheckBox) inflate.findViewById(R.id.onReverse);
    ch.setOnCheckedChangeListener(null);
    ch.setChecked(AppState.get().isReverseKeys);
    ch.setOnCheckedChangeListener(reverseListener);
    inflate.findViewById(R.id.onColorChoser).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
        }
    });
    initKeys();
    searchPaths = (TextView) inflate.findViewById(R.id.searchPaths);
    searchPaths.setText(TxtUtils.underline(AppState.get().searchPaths.replace(",", "<br>")));
    searchPaths.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            onFolderConfigDialog();
        }
    });
    TextView addFolder = (TextView) inflate.findViewById(R.id.onConfigPath);
    TxtUtils.underlineTextView(addFolder);
    addFolder.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            onFolderConfigDialog();
        }
    });
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.importButton)).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            PrefDialogs.importDialog(getActivity());
        }
    });
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.exportButton)).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            PrefDialogs.exportDialog(getActivity());
        }
    });
    final CheckBox isAutomaticExport = (CheckBox) inflate.findViewById(R.id.isAutomaticExport);
    isAutomaticExport.setChecked(AppState.get().isAutomaticExport);
    isAutomaticExport.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            AppState.get().isAutomaticExport = isChecked;
        }
    });
    // folders
    final TextView fontFolder = (TextView) inflate.findViewById(R.id.fontFolder);
    TxtUtils.underline(fontFolder, TxtUtils.lastTwoPath(BookCSS.get().fontFolder));
    fontFolder.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ChooserDialogFragment.chooseFolder(getActivity(), BookCSS.get().fontFolder).setOnSelectListener(new ResultResponse2<String, Dialog>() {

                @Override
                public boolean onResultRecive(String nPath, Dialog dialog) {
                    BookCSS.get().fontFolder = nPath;
                    TxtUtils.underline(fontFolder, TxtUtils.lastTwoPath(BookCSS.get().fontFolder));
                    dialog.dismiss();
                    return false;
                }
            });
        }
    });
    final TextView downloadFolder = (TextView) inflate.findViewById(R.id.downloadFolder);
    TxtUtils.underline(downloadFolder, TxtUtils.lastTwoPath(AppState.get().downlodsPath));
    downloadFolder.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ChooserDialogFragment.chooseFolder(getActivity(), AppState.get().downlodsPath).setOnSelectListener(new ResultResponse2<String, Dialog>() {

                @Override
                public boolean onResultRecive(String nPath, Dialog dialog) {
                    AppState.get().downlodsPath = nPath;
                    TxtUtils.underline(downloadFolder, TxtUtils.lastTwoPath(AppState.get().downlodsPath));
                    dialog.dismiss();
                    return false;
                }
            });
        }
    });
    final TextView ttsFolder = (TextView) inflate.findViewById(R.id.ttsFolder);
    TxtUtils.underline(ttsFolder, TxtUtils.lastTwoPath(AppState.get().ttsSpeakPath));
    ttsFolder.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ChooserDialogFragment.chooseFolder(getActivity(), AppState.get().ttsSpeakPath).setOnSelectListener(new ResultResponse2<String, Dialog>() {

                @Override
                public boolean onResultRecive(String nPath, Dialog dialog) {
                    AppState.get().ttsSpeakPath = nPath;
                    TxtUtils.underline(ttsFolder, TxtUtils.lastTwoPath(AppState.get().ttsSpeakPath));
                    dialog.dismiss();
                    return false;
                }
            });
        }
    });
    final TextView backupPath = (TextView) inflate.findViewById(R.id.backupFolder);
    TxtUtils.underline(backupPath, TxtUtils.lastTwoPath(AppState.get().backupPath));
    backupPath.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ChooserDialogFragment.chooseFolder(getActivity(), AppState.get().backupPath).setOnSelectListener(new ResultResponse2<String, Dialog>() {

                @Override
                public boolean onResultRecive(String nPath, Dialog dialog) {
                    AppState.get().backupPath = nPath;
                    TxtUtils.underline(backupPath, TxtUtils.lastTwoPath(AppState.get().backupPath));
                    dialog.dismiss();
                    return false;
                }
            });
        }
    });
    // Widget Configuration
    final TextView widgetLayout = (TextView) inflate.findViewById(R.id.widgetLayout);
    widgetLayout.setText(AppState.get().widgetType == AppState.WIDGET_LIST ? R.string.list : R.string.grid);
    TxtUtils.underlineTextView(widgetLayout);
    widgetLayout.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            final PopupMenu popupMenu = new PopupMenu(v.getContext(), v);
            final MenuItem recent = popupMenu.getMenu().add(R.string.list);
            recent.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().widgetType = AppState.WIDGET_LIST;
                    widgetLayout.setText(R.string.list);
                    TxtUtils.underlineTextView(widgetLayout);
                    return false;
                }
            });
            final MenuItem starred = popupMenu.getMenu().add(R.string.grid);
            starred.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().widgetType = AppState.WIDGET_GRID;
                    widgetLayout.setText(R.string.grid);
                    TxtUtils.underlineTextView(widgetLayout);
                    return false;
                }
            });
            popupMenu.show();
        }
    });
    final TextView widgetForRecent = (TextView) inflate.findViewById(R.id.widgetForRecent);
    widgetForRecent.setText(AppState.get().isStarsInWidget ? R.string.starred : R.string.recent);
    TxtUtils.underlineTextView(widgetForRecent);
    widgetForRecent.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            final PopupMenu popupMenu = new PopupMenu(widgetForRecent.getContext(), widgetForRecent);
            final MenuItem recent = popupMenu.getMenu().add(R.string.recent);
            recent.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().isStarsInWidget = false;
                    widgetForRecent.setText(AppState.get().isStarsInWidget ? R.string.starred : R.string.recent);
                    TxtUtils.underlineTextView(widgetForRecent);
                    return false;
                }
            });
            final MenuItem starred = popupMenu.getMenu().add(R.string.starred);
            starred.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(final MenuItem item) {
                    AppState.get().isStarsInWidget = true;
                    widgetForRecent.setText(AppState.get().isStarsInWidget ? R.string.starred : R.string.recent);
                    TxtUtils.underlineTextView(widgetForRecent);
                    return false;
                }
            });
            popupMenu.show();
        }
    });
    final TextView widgetItemsCount = (TextView) inflate.findViewById(R.id.widgetItemsCount);
    widgetItemsCount.setText("" + AppState.get().widgetItemsCount);
    TxtUtils.underlineTextView(widgetItemsCount);
    widgetItemsCount.setOnClickListener(new OnClickListener() {

        @SuppressLint("NewApi")
        @Override
        public void onClick(View v) {
            PopupMenu p = new PopupMenu(getContext(), columsCount);
            for (int i = 1; i <= 50; i++) {
                final int k = i;
                p.getMenu().add("" + k).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        AppState.get().widgetItemsCount = k;
                        widgetItemsCount.setText("" + k);
                        TxtUtils.underlineTextView(widgetItemsCount);
                        return false;
                    }
                });
            }
            p.show();
        }
    });
    // dictionary
    isRememberDictionary = (CheckBox) inflate.findViewById(R.id.isRememberDictionary);
    isRememberDictionary.setChecked(AppState.get().isRememberDictionary);
    isRememberDictionary.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
            AppState.get().isRememberDictionary = isChecked;
        }
    });
    selectedDictionaly = (TextView) inflate.findViewById(R.id.selectedDictionaly);
    selectedDictionaly.setText(DialogTranslateFromTo.getSelectedDictionaryUnderline());
    selectedDictionaly.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DialogTranslateFromTo.show(getActivity(), new Runnable() {

                @Override
                public void run() {
                    selectedDictionaly.setText(DialogTranslateFromTo.getSelectedDictionaryUnderline());
                }
            });
        }
    });
    textDayColor = (TextView) inflate.findViewById(R.id.onDayColor);
    textDayColor.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            new ColorsDialog(getActivity(), true, AppState.get().colorDayText, AppState.get().colorDayBg, false, true, new ColorsDialogResult() {

                @Override
                public void onChooseColor(int colorText, int colorBg) {
                    textDayColor.setTextColor(colorText);
                    textDayColor.setBackgroundColor(colorBg);
                    AppState.get().colorDayText = colorText;
                    AppState.get().colorDayBg = colorBg;
                    ImageLoader.getInstance().clearDiskCache();
                    ImageLoader.getInstance().clearMemoryCache();
                }
            });
        }
    });
    textNigthColor = (TextView) inflate.findViewById(R.id.onNigthColor);
    textNigthColor.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            new ColorsDialog(getActivity(), false, AppState.get().colorNigthText, AppState.get().colorNigthBg, false, true, new ColorsDialogResult() {

                @Override
                public void onChooseColor(int colorText, int colorBg) {
                    textNigthColor.setTextColor(colorText);
                    textNigthColor.setBackgroundColor(colorBg);
                    AppState.get().colorNigthText = colorText;
                    AppState.get().colorNigthBg = colorBg;
                }
            });
        }
    });
    TextView onDefalt = TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.onDefaultColor));
    onDefalt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AppState.get().colorDayText = AppState.COLOR_BLACK;
            AppState.get().colorDayBg = AppState.COLOR_WHITE;
            textDayColor.setTextColor(AppState.COLOR_BLACK);
            textDayColor.setBackgroundColor(AppState.COLOR_WHITE);
            AppState.get().colorNigthText = AppState.COLOR_WHITE;
            AppState.get().colorNigthBg = AppState.COLOR_BLACK;
            textNigthColor.setTextColor(AppState.COLOR_WHITE);
            textNigthColor.setBackgroundColor(AppState.COLOR_BLACK);
        }
    });
    LinearLayout colorsLine = (LinearLayout) inflate.findViewById(R.id.colorsLine);
    colorsLine.removeAllViews();
    for (String color : AppState.STYLE_COLORS) {
        View view = inflater.inflate(R.layout.item_color, (ViewGroup) inflate, false);
        view.setBackgroundColor(Color.TRANSPARENT);
        final int intColor = Color.parseColor(color);
        final View img = view.findViewById(R.id.itColor);
        img.setBackgroundColor(intColor);
        colorsLine.addView(view, new LayoutParams(Dips.dpToPx(30), Dips.dpToPx(30)));
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                TintUtil.color = intColor;
                AppState.get().tintColor = intColor;
                TempHolder.listHash++;
                onTintChanged();
                sendNotifyTintChanged();
                AppState.get().save(getActivity());
            }
        });
    }
    View view = inflater.inflate(R.layout.item_color, (ViewGroup) inflate, false);
    view.setBackgroundColor(Color.TRANSPARENT);
    final ImageView img = (ImageView) view.findViewById(R.id.itColor);
    img.setColorFilter(getResources().getColor(R.color.tint_gray));
    img.setImageResource(R.drawable.glyphicons_433_plus);
    img.setBackgroundColor(AppState.get().userColor);
    colorsLine.addView(view, new LayoutParams(Dips.dpToPx(30), Dips.dpToPx(30)));
    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            new HSVColorPickerDialog(getContext(), AppState.get().userColor, new OnColorSelectedListener() {

                @Override
                public void colorSelected(Integer color) {
                    AppState.get().userColor = color;
                    AppState.get().tintColor = color;
                    TintUtil.color = color;
                    img.setBackgroundColor(color);
                    onTintChanged();
                    sendNotifyTintChanged();
                    AppState.get().save(getActivity());
                    TempHolder.listHash++;
                }
            }).show();
        }
    });
    underline(inflate.findViewById(R.id.linksColor)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            closeLeftMenu();
            Dialogs.showLinksColorDialog(getActivity(), new Runnable() {

                @Override
                public void run() {
                    TempHolder.listHash++;
                    onTintChanged();
                    sendNotifyTintChanged();
                    ((MainTabs2) getActivity()).updateCurrentFragment();
                }
            });
        }
    });
    underline(inflate.findViewById(R.id.onContrast)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Dialogs.showContrastDialogByUrl(getActivity(), new Runnable() {

                @Override
                public void run() {
                    ImageLoader.getInstance().clearDiskCache();
                    ImageLoader.getInstance().clearMemoryCache();
                    TempHolder.listHash++;
                    notifyFragment();
                }
            });
        }
    });
    underline(inflate.findViewById(R.id.onRateIt)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            rateIT();
        }
    });
    underline(inflate.findViewById(R.id.openWeb)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Urls.open(getActivity(), WWW_SITE);
        }
    });
    underline(inflate.findViewById(R.id.openBeta)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Urls.open(getActivity(), WWW_BETA_SITE);
        }
    });
    underline(inflate.findViewById(R.id.openArchive)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Urls.open(getActivity(), WWW_ARCHIVE_SITE);
        }
    });
    underline(inflate.findViewById(R.id.onTelegram)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Urls.open(getActivity(), "https://t.me/LibreraReader");
        }
    });
    TextView proText = (TextView) inflate.findViewById(R.id.downloadPRO);
    TxtUtils.underlineTextView(proText);
    ((View) proText.getParent()).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(final View v) {
            Urls.openPdfPro(getActivity());
        }
    });
    // if (AppsConfig.checkIsProInstalled(getActivity())) {
    // ((View) proText.getParent()).setVisibility(View.GONE);
    // }
    inflate.findViewById(R.id.cleanRecent).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
            builder.setMessage(getString(R.string.clear_all_recent) + "?");
            builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    AppSharedPreferences.get().cleanRecent();
                }
            });
            builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                }
            });
            builder.show();
        }
    });
    inflate.findViewById(R.id.cleanBookmarks).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
            builder.setMessage(getString(R.string.clear_all_bookmars) + "?");
            builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    AppSharedPreferences.get().cleanBookmarks();
                }
            });
            builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                }
            });
            builder.show();
        }
    });
    // tutorials
    TextView tutorialLink = (TextView) inflate.findViewById(R.id.tutorialLink);
    TxtUtils.underlineTextView(tutorialLink);
    tutorialLink.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Urls.open(getActivity(), AndroidWhatsNew.DETAIL_URL_RU);
        }
    });
    // licences link
    underline(inflate.findViewById(R.id.libraryLicenses)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
            alert.setTitle(R.string.licenses_for_libraries);
            WebView wv = new WebView(getActivity());
            wv.loadUrl("file:///android_asset/licenses.html");
            wv.setWebViewClient(new WebViewClient() {

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });
            alert.setView(wv);
            alert.setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            });
            AlertDialog create = alert.create();
            create.setOnDismissListener(new OnDismissListener() {

                @Override
                public void onDismiss(DialogInterface dialog) {
                    Keyboards.hideNavigation(getActivity());
                }
            });
            create.show();
        }
    });
    TxtUtils.underlineTextView((TextView) inflate.findViewById(R.id.docSearch)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            MultyDocSearchDialog.show(getActivity());
        }
    });
    // convert
    final TextView docConverter = (TextView) inflate.findViewById(R.id.docConverter);
    TxtUtils.underlineTextView(docConverter);
    docConverter.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            PopupMenu p = new PopupMenu(getContext(), v);
            for (final String id : AppState.CONVERTERS.keySet()) {
                p.getMenu().add("" + getActivity().getString(R.string.convert_to) + " " + id).setOnMenuItemClickListener(new OnMenuItemClickListener() {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        ShareDialog.showsItemsDialog(getActivity(), getActivity().getString(R.string.convert_to) + " " + id, AppState.CONVERTERS.get(id));
                        return false;
                    }
                });
            }
            p.show();
        }
    });
    overlay = getActivity().findViewById(R.id.overlay);
    return inflate;
}
Also used : AlertDialog(android.app.AlertDialog) MainTabs2(com.foobnix.ui2.MainTabs2) DragLinearLayout(com.jmedeisis.draglinearlayout.DragLinearLayout) DialogInterface(android.content.DialogInterface) OnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu) OnColorSelectedListener(com.buzzingandroid.ui.HSVColorPickerDialog.OnColorSelectedListener) MultyDocSearchDialog(com.foobnix.pdf.info.view.MultyDocSearchDialog) ShareDialog(com.foobnix.pdf.info.widget.ShareDialog) PasswordDialog(com.foobnix.pdf.info.PasswordDialog) KeyCodeDialog(com.foobnix.pdf.info.view.KeyCodeDialog) AlertDialog(android.app.AlertDialog) Dialog(android.app.Dialog) HSVColorPickerDialog(com.buzzingandroid.ui.HSVColorPickerDialog) ColorsDialog(com.foobnix.pdf.info.widget.ColorsDialog) TextView(android.widget.TextView) List(java.util.List) ArrayList(java.util.ArrayList) ImageView(android.widget.ImageView) WebView(android.webkit.WebView) WebViewClient(android.webkit.WebViewClient) ResultResponse2(com.foobnix.android.utils.ResultResponse2) LayoutParams(android.view.ViewGroup.LayoutParams) OnCheckedChangeListener(android.widget.CompoundButton.OnCheckedChangeListener) CustomSeek(com.foobnix.pdf.info.view.CustomSeek) IntegerResponse(com.foobnix.android.utils.IntegerResponse) NameNotFoundException(android.content.pm.PackageManager.NameNotFoundException) PackageInfo(android.content.pm.PackageInfo) OnDismissListener(android.content.DialogInterface.OnDismissListener) Handler(android.os.Handler) MenuItem(android.view.MenuItem) OnClickListener(android.view.View.OnClickListener) ImageView(android.widget.ImageView) View(android.view.View) WebView(android.webkit.WebView) TextView(android.widget.TextView) ScrollView(android.widget.ScrollView) SuppressLint(android.annotation.SuppressLint) UITab(com.foobnix.pdf.info.wrapper.UITab) ScrollView(android.widget.ScrollView) KeyCodeDialog(com.foobnix.pdf.info.view.KeyCodeDialog) HSVColorPickerDialog(com.buzzingandroid.ui.HSVColorPickerDialog) CheckBox(android.widget.CheckBox) OnClickListener(android.view.View.OnClickListener) SuppressLint(android.annotation.SuppressLint) ColorsDialog(com.foobnix.pdf.info.widget.ColorsDialog) ColorsDialogResult(com.foobnix.pdf.info.widget.ColorsDialog.ColorsDialogResult) LinearLayout(android.widget.LinearLayout) DragLinearLayout(com.jmedeisis.draglinearlayout.DragLinearLayout) CompoundButton(android.widget.CompoundButton) PopupMenu(android.widget.PopupMenu) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu)

Example 5 with MyPopupMenu

use of com.foobnix.pdf.info.view.MyPopupMenu in project LibreraReader by foobnix.

the class SearchFragment2 method popupMenu.

private void popupMenu(final ImageView onGridList) {
    MyPopupMenu p = new MyPopupMenu(getActivity(), onGridList);
    PopupHelper.addPROIcon(p, getActivity());
    List<Integer> names = // 
    Arrays.asList(// 
    R.string.list, // 
    R.string.compact, // 
    R.string.grid, // 
    R.string.cover, // 
    R.string.author, // 
    R.string.genre, // 
    R.string.serie, R.string.tag);
    final List<Integer> icons = // 
    Arrays.asList(// 
    R.drawable.glyphicons_114_justify, // 
    R.drawable.glyphicons_114_justify_compact, // 
    R.drawable.glyphicons_156_show_big_thumbnails, // 
    R.drawable.glyphicons_157_show_thumbnails, // 
    R.drawable.glyphicons_4_user, // 
    R.drawable.glyphicons_66_tag, // 
    R.drawable.glyphicons_710_list_numbered, R.drawable.glyphicons_67_tags);
    final List<Integer> actions = // 
    Arrays.asList(// 
    AppState.MODE_LIST, // 
    AppState.MODE_LIST_COMPACT, // 
    AppState.MODE_GRID, // 
    AppState.MODE_COVERS, // 
    AppState.MODE_AUTHORS, // 
    AppState.MODE_GENRE, // 
    AppState.MODE_SERIES, AppState.MODE_TAGS);
    for (int i = 0; i < names.size(); i++) {
        final int index = i;
        p.getMenu().add(names.get(i)).setIcon(icons.get(i)).setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                AppState.get().libraryMode = actions.get(index);
                onGridList.setImageResource(icons.get(index));
                if (Arrays.asList(AppState.MODE_AUTHORS, AppState.MODE_SERIES, AppState.MODE_GENRE, AppState.MODE_TAGS).contains(AppState.get().libraryMode)) {
                    searchEditText.setText("");
                }
                onGridList();
                searchAndOrderAsync();
                return false;
            }
        });
    }
    p.show();
    return;
}
Also used : OnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener) MyPopupMenu(com.foobnix.pdf.info.view.MyPopupMenu) MenuItem(android.view.MenuItem)

Aggregations

MenuItem (android.view.MenuItem)13 OnMenuItemClickListener (android.view.MenuItem.OnMenuItemClickListener)13 MyPopupMenu (com.foobnix.pdf.info.view.MyPopupMenu)13 View (android.view.View)5 OnClickListener (android.view.View.OnClickListener)5 TextView (android.widget.TextView)5 AlertDialog (android.app.AlertDialog)4 DialogInterface (android.content.DialogInterface)4 ImageView (android.widget.ImageView)4 MainTabs2 (com.foobnix.ui2.MainTabs2)3 List (java.util.List)3 TargetApi (android.annotation.TargetApi)2 OnClickListener (android.content.DialogInterface.OnClickListener)2 Handler (android.os.Handler)2 OnLongClickListener (android.view.View.OnLongClickListener)2 IntegerResponse (com.foobnix.android.utils.IntegerResponse)2 FileMeta (com.foobnix.dao2.FileMeta)2 CustomSeek (com.foobnix.pdf.info.view.CustomSeek)2 ArrayList (java.util.ArrayList)2 SuppressLint (android.annotation.SuppressLint)1