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;
}
Aggregations