Search in sources :

Example 1 with AwfulSearch

use of com.ferg.awfulapp.thread.AwfulSearch in project Awful.apk by Awful.

the class SearchFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater aInflater, ViewGroup aContainer, Bundle aSavedState) {
    super.onCreateView(aInflater, aContainer, aSavedState);
    Timber.v("onCreateView");
    View result = inflateView(R.layout.search, aContainer, aInflater);
    mSearchQuery = result.findViewById(R.id.search_query);
    mSRL = result.findViewById(R.id.search_srl);
    mSRL.setOnRefreshListener(this);
    mSRL.setColorSchemeResources(ColorProvider.getSRLProgressColors(null));
    mSRL.setProgressBackgroundColor(ColorProvider.getSRLBackgroundColor(null));
    mSRL.setEnabled(false);
    mSearchResultList = result.findViewById(R.id.search_results);
    mSearchResultList.setAdapter(new RecyclerView.Adapter<SearchResultHolder>() {

        @Override
        public SearchResultHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.search_result_item, parent, false);
            return new SearchResultHolder(view);
        }

        @Override
        public void onBindViewHolder(SearchResultHolder holder, final int position) {
            AwfulSearch search = mSearchResults.get(position);
            holder.threadName.setText(search.getThreadTitle());
            holder.hitInfo.setText(Html.fromHtml("<b>" + search.getUsername() + "</b> in <b>" + search.getForumTitle() + "</b>"));
            holder.blurb.setText(Html.fromHtml(search.getBlurb()));
            holder.threadName.setText(search.getThreadTitle());
            holder.timestamp.setText(search.getPostDate());
            final String threadlink = search.getThreadLink();
            final int forumId = search.getForumId();
            final ProgressDialog redirectDialog = new ProgressDialog(getContext());
            final RedirectTask redirect = new RedirectTask(Constants.BASE_URL + threadlink) {

                @Override
                protected void onPostExecute(String url) {
                    if (!isCancelled()) {
                        if (url != null) {
                            AwfulURL result = AwfulURL.parse(url);
                            Activity activity = getActivity();
                            Intent openThread = new Intent().setClass(activity, ForumsIndexActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra(Constants.THREAD_ID, (int) result.getId()).putExtra(Constants.THREAD_PAGE, (int) result.getPage()).putExtra(Constants.FORUM_ID, forumId).putExtra(Constants.FORUM_PAGE, 1).putExtra(Constants.THREAD_FRAGMENT, result.getFragment().substring(4));
                            redirectDialog.dismiss();
                            activity.finish();
                            startActivity(openThread);
                        } else {
                            getAlertView().show(new AwfulError());
                        }
                    }
                }
            };
            holder.self.setOnClickListener(v -> {
                if (getActivity() != null) {
                    if (redirect.getStatus() == AsyncTask.Status.PENDING) {
                        redirect.execute();
                        redirectDialog.setMessage("Just a second");
                        redirectDialog.setTitle("Loading");
                        redirectDialog.setIndeterminate(true);
                        redirectDialog.setCancelable(false);
                        redirectDialog.show();
                    }
                }
            });
        }

        @Override
        public int getItemCount() {
            if (mSearchResults != null) {
                return mSearchResults.size();
            }
            return 0;
        }
    });
    mSearchResultList.setLayoutManager(new LinearLayoutManager(getContext()));
    return result;
}
Also used : Constants(com.ferg.awfulapp.constants.Constants) SwipyRefreshLayoutDirection(com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection) Bundle(android.os.Bundle) AwfulRequest(com.ferg.awfulapp.task.AwfulRequest) RedirectTask(com.ferg.awfulapp.task.RedirectTask) AwfulURL(com.ferg.awfulapp.thread.AwfulURL) Intent(android.content.Intent) ArrayUtils(org.apache.commons.lang3.ArrayUtils) DialogFragment(android.support.v4.app.DialogFragment) MenuItem(android.view.MenuItem) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) NetworkUtils(com.ferg.awfulapp.network.NetworkUtils) MenuInflater(android.view.MenuInflater) Menu(android.view.Menu) View(android.view.View) ColorProvider(com.ferg.awfulapp.provider.ColorProvider) AsyncTask(android.os.AsyncTask) LayoutInflater(android.view.LayoutInflater) AwfulPreferences(com.ferg.awfulapp.preferences.AwfulPreferences) ProgressDialog(android.app.ProgressDialog) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) VolleyError(com.android.volley.VolleyError) ViewGroup(android.view.ViewGroup) Timber(timber.log.Timber) AwfulError(com.ferg.awfulapp.util.AwfulError) RecyclerView(android.support.v7.widget.RecyclerView) SwipyRefreshLayout(com.ferg.awfulapp.widget.SwipyRefreshLayout) TextView(android.widget.TextView) SearchRequest(com.ferg.awfulapp.task.SearchRequest) SearchResultRequest(com.ferg.awfulapp.task.SearchResultRequest) Html(android.text.Html) AwfulSearch(com.ferg.awfulapp.thread.AwfulSearch) Snackbar(android.support.design.widget.Snackbar) AwfulSearchResult(com.ferg.awfulapp.thread.AwfulSearchResult) Activity(android.app.Activity) EditText(android.widget.EditText) ViewGroup(android.view.ViewGroup) Activity(android.app.Activity) Intent(android.content.Intent) AwfulURL(com.ferg.awfulapp.thread.AwfulURL) AwfulSearch(com.ferg.awfulapp.thread.AwfulSearch) ProgressDialog(android.app.ProgressDialog) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) AwfulError(com.ferg.awfulapp.util.AwfulError) RedirectTask(com.ferg.awfulapp.task.RedirectTask) RecyclerView(android.support.v7.widget.RecyclerView)

Aggregations

Activity (android.app.Activity)1 ProgressDialog (android.app.ProgressDialog)1 Intent (android.content.Intent)1 AsyncTask (android.os.AsyncTask)1 Bundle (android.os.Bundle)1 Snackbar (android.support.design.widget.Snackbar)1 DialogFragment (android.support.v4.app.DialogFragment)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 Html (android.text.Html)1 LayoutInflater (android.view.LayoutInflater)1 Menu (android.view.Menu)1 MenuInflater (android.view.MenuInflater)1 MenuItem (android.view.MenuItem)1 View (android.view.View)1 ViewGroup (android.view.ViewGroup)1 EditText (android.widget.EditText)1 TextView (android.widget.TextView)1 VolleyError (com.android.volley.VolleyError)1 Constants (com.ferg.awfulapp.constants.Constants)1