Search in sources :

Example 1 with SearchHistory

use of com.battlelancer.seriesguide.util.SearchHistory in project SeriesGuide by UweTrottmann.

the class MoviesSearchActivity method setupActionBar.

private void setupActionBar(MoviesDiscoverLink link) {
    super.setupActionBar();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
    // set title for screen readers
    if (showSearchView) {
        setTitle(R.string.search);
    } else {
        setTitle(link.titleRes);
    }
    setSearchViewVisible(showSearchView);
    // setup search box
    searchView.setThreshold(1);
    searchView.setOnClickListener(searchViewClickListener);
    searchView.setOnItemClickListener(searchViewItemClickListener);
    searchView.setOnEditorActionListener(searchViewActionListener);
    searchView.setHint(R.string.movies_search_hint);
    // set in code as XML is overridden
    searchView.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
    searchView.setInputType(EditorInfo.TYPE_CLASS_TEXT);
    // manually retrieve the auto complete view popup background to override the theme
    TypedValue outValue = new TypedValue();
    getTheme().resolveAttribute(android.R.attr.autoCompleteTextViewStyle, outValue, true);
    int[] attributes = new int[] { android.R.attr.popupBackground };
    TypedArray a = getTheme().obtainStyledAttributes(outValue.data, attributes);
    if (a.hasValue(0)) {
        searchView.setDropDownBackgroundDrawable(a.getDrawable(0));
    }
    a.recycle();
    // setup search history
    searchHistory = new SearchHistory(this, SearchSettings.KEY_SUFFIX_TMDB);
    searchHistoryAdapter = new ArrayAdapter<>(this, R.layout.item_dropdown, searchHistory.getSearchHistory());
    searchView.setAdapter(searchHistoryAdapter);
    // drop-down is auto-shown on config change, ensure it is hidden when recreating views
    searchView.dismissDropDown();
    // setup clear button
    clearButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            searchView.setText(null);
            searchView.requestFocus();
        }
    });
}
Also used : TypedArray(android.content.res.TypedArray) SearchHistory(com.battlelancer.seriesguide.util.SearchHistory) BindView(butterknife.BindView) View(android.view.View) AdapterView(android.widget.AdapterView) AutoCompleteTextView(android.widget.AutoCompleteTextView) TextView(android.widget.TextView) ActionBar(android.support.v7.app.ActionBar) TypedValue(android.util.TypedValue)

Example 2 with SearchHistory

use of com.battlelancer.seriesguide.util.SearchHistory in project SeriesGuide by UweTrottmann.

the class SearchActivity method setupViews.

private void setupViews(boolean mayShowKeyboard) {
    ButterKnife.bind(this);
    clearButton.setVisibility(View.GONE);
    clearButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            searchView.setText(null);
            searchView.requestFocus();
        }
    });
    searchView.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            boolean isEmptyText = TextUtils.isEmpty(s);
            triggerLocalSearch(isEmptyText ? "" : s.toString());
            clearButton.setVisibility(isEmptyText ? View.GONE : View.VISIBLE);
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    searchView.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_SEARCH || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
                triggerTvdbSearch();
                return true;
            }
            return false;
        }
    });
    // manually retrieve the auto complete view popup background to override the theme
    TypedValue outValue = new TypedValue();
    getTheme().resolveAttribute(android.R.attr.autoCompleteTextViewStyle, outValue, true);
    int[] attributes = new int[] { android.R.attr.popupBackground };
    TypedArray a = getTheme().obtainStyledAttributes(outValue.data, attributes);
    if (a.hasValue(0)) {
        searchView.setDropDownBackgroundDrawable(a.getDrawable(0));
    }
    a.recycle();
    // setup search history (only used by TVDb search)
    searchHistory = new SearchHistory(this, SearchSettings.KEY_SUFFIX_THETVDB);
    searchHistoryAdapter = new ArrayAdapter<>(this, SeriesGuidePreferences.THEME == R.style.Theme_SeriesGuide_Light ? R.layout.item_dropdown_light : R.layout.item_dropdown, searchHistory.getSearchHistory());
    searchView.setThreshold(1);
    searchView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ((AutoCompleteTextView) v).showDropDown();
        }
    });
    searchView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            triggerTvdbSearch();
        }
    });
    // set in code as XML is overridden
    searchView.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
    searchView.setInputType(EditorInfo.TYPE_CLASS_TEXT);
    // drop-down is auto-shown on config change, ensure it is hidden when recreating views
    searchView.dismissDropDown();
    TabStripAdapter tabsAdapter = new TabStripAdapter(getSupportFragmentManager(), this, viewPager, tabs);
    tabs.setOnPageChangeListener(pageChangeListener);
    tabs.setOnTabClickListener(new SlidingTabLayout.OnTabClickListener() {

        @Override
        public void onTabClick(int position) {
            if (viewPager.getCurrentItem() == position) {
                EventBus.getDefault().post(new TabClickEvent(position));
            }
        }
    });
    tabsAdapter.addTab(R.string.shows, ShowSearchFragment.class, null);
    tabsAdapter.addTab(R.string.episodes, EpisodeSearchFragment.class, null);
    tabsAdapter.addTab(R.string.action_shows_add, TvdbAddFragment.class, null);
    if (TraktCredentials.get(this).hasCredentials()) {
        addTraktTab(tabsAdapter, R.string.recommended, TraktAddFragment.TYPE_RECOMMENDED);
        addTraktTab(tabsAdapter, R.string.watched_shows, TraktAddFragment.TYPE_WATCHED);
        addTraktTab(tabsAdapter, R.string.shows_collection, TraktAddFragment.TYPE_COLLECTION);
        addTraktTab(tabsAdapter, R.string.watchlist, TraktAddFragment.TYPE_WATCHLIST);
    }
    tabsAdapter.notifyTabsChanged();
    // set default tab
    if (getIntent() != null && getIntent().getExtras() != null) {
        int defaultTab = getIntent().getExtras().getInt(EXTRA_DEFAULT_TAB);
        if (defaultTab < tabsAdapter.getCount()) {
            viewPager.setCurrentItem(defaultTab);
        }
        if (mayShowKeyboard && (defaultTab == TAB_POSITION_SHOWS || defaultTab == TAB_POSITION_EPISODES)) {
            Utils.showSoftKeyboardOnSearchView(this, searchView);
        }
    } else if (mayShowKeyboard) {
        // also show keyboard when showing first tab (added tab)
        Utils.showSoftKeyboardOnSearchView(this, searchView);
    }
}
Also used : SlidingTabLayout(com.battlelancer.seriesguide.widgets.SlidingTabLayout) BindView(butterknife.BindView) View(android.view.View) AdapterView(android.widget.AdapterView) AutoCompleteTextView(android.widget.AutoCompleteTextView) TextView(android.widget.TextView) KeyEvent(android.view.KeyEvent) TabStripAdapter(com.battlelancer.seriesguide.adapters.TabStripAdapter) TypedArray(android.content.res.TypedArray) TabClickEvent(com.battlelancer.seriesguide.util.TabClickEvent) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) AutoCompleteTextView(android.widget.AutoCompleteTextView) TextView(android.widget.TextView) AdapterView(android.widget.AdapterView) SearchHistory(com.battlelancer.seriesguide.util.SearchHistory) TypedValue(android.util.TypedValue)

Aggregations

TypedArray (android.content.res.TypedArray)2 TypedValue (android.util.TypedValue)2 View (android.view.View)2 AdapterView (android.widget.AdapterView)2 AutoCompleteTextView (android.widget.AutoCompleteTextView)2 TextView (android.widget.TextView)2 BindView (butterknife.BindView)2 SearchHistory (com.battlelancer.seriesguide.util.SearchHistory)2 ActionBar (android.support.v7.app.ActionBar)1 Editable (android.text.Editable)1 TextWatcher (android.text.TextWatcher)1 KeyEvent (android.view.KeyEvent)1 TabStripAdapter (com.battlelancer.seriesguide.adapters.TabStripAdapter)1 TabClickEvent (com.battlelancer.seriesguide.util.TabClickEvent)1 SlidingTabLayout (com.battlelancer.seriesguide.widgets.SlidingTabLayout)1