/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import android.content.res.Resources; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.analytics.OzViews; import com.galaxy.meetup.client.android.common.Recyclable; import com.galaxy.meetup.client.android.ui.view.ColumnGridView; import com.galaxy.meetup.client.android.ui.view.HostActionBar; import com.galaxy.meetup.client.android.ui.view.SearchViewAdapter.OnQueryChangeListener; import com.galaxy.meetup.client.util.ScreenMetrics; /** * * @author sihai * */ public class HostedSquareSearchFragment extends HostedEsFragment implements OnQueryChangeListener, SquareSearchAdapter.SearchListAdapterListener { protected static ScreenMetrics sScreenMetrics; private SquareSearchAdapter mAdapter; private ColumnGridView mGridView; public HostedSquareSearchFragment() { } private void updateView(View view) { mGridView.setVisibility(0); showContent(view); } public final OzViews getViewForLogging() { return OzViews.SQUARE_SEARCH; } protected final boolean isEmpty() { return false; } public final void onCreate(Bundle bundle) { super.onCreate(bundle); android.support.v4.app.LoaderManager loadermanager = getLoaderManager(); mAdapter = new SquareSearchAdapter(getActivity(), getFragmentManager(), loadermanager, mAccount); mAdapter.onCreate(bundle); mAdapter.setListener(this); } public final View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { View view = layoutinflater.inflate(R.layout.hosted_square_search_fragment, viewgroup, false); mGridView = (ColumnGridView)view.findViewById(R.id.grid); mGridView.setAdapter(mAdapter); if(sScreenMetrics == null) sScreenMetrics = ScreenMetrics.getInstance(getActivity()); Resources resources = getActivity().getResources(); int i = resources.getConfiguration().orientation; boolean flag = false; if(i == 2) flag = true; if(flag) { mGridView.setOrientation(1); mGridView.setColumnCount(-1); mGridView.setMinColumnWidth(resources.getDimensionPixelSize(R.dimen.square_card_min_height)); } else { mGridView.setOrientation(2); ColumnGridView columngridview = mGridView; int j; if(sScreenMetrics.screenDisplayType == 0) j = 1; else j = 2; columngridview.setColumnCount(j); } mGridView.setItemMargin(sScreenMetrics.itemMargin); mGridView.setPadding(sScreenMetrics.itemMargin, sScreenMetrics.itemMargin, sScreenMetrics.itemMargin, sScreenMetrics.itemMargin); mGridView.setRecyclerListener(new ColumnGridView.RecyclerListener() { public final void onMovedToScrapHeap(View view1) { if(view1 instanceof Recyclable) ((Recyclable)view1).onRecycle(); } }); updateView(view); return view; } protected final void onPrepareActionBar(HostActionBar hostactionbar) { hostactionbar.showSearchView(); hostactionbar.getSearchViewAdapter().setQueryHint(R.string.search_squares_hint_text); hostactionbar.getSearchViewAdapter().addOnChangeListener(this); } public final void onQueryClose() { } public final void onQueryTextChanged(CharSequence charsequence) { if(mAdapter != null) { SquareSearchAdapter squaresearchadapter = mAdapter; String s; if(charsequence == null) s = null; else s = charsequence.toString().trim(); squaresearchadapter.setQueryString(s); } } public final void onQueryTextSubmitted(CharSequence charsequence) { } public final void onResume() { super.onResume(); updateView(getView()); } public final void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); if(mAdapter != null) mAdapter.onSaveInstanceState(bundle); } public final void onSearchListAdapterStateChange() { View view = getView(); if(view != null) updateView(view); } public final void onSquareSelected(String s) { startActivity(Intents.getSquareStreamActivityIntent(getActivity(), mAccount, s, null, null)); } public final void onStart() { super.onStart(); mAdapter.onStart(); } public final void onStop() { super.onStart(); mAdapter.onStop(); } }