Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CamerasFragment extends Fragment implements
- VejoAoVivoSyncAdapter.RefreshListener,
- SwipeRefreshLayout.OnRefreshListener {
- public static final String TAG = "CamerasFragment";
- private Activity mActivity;
- private RelativeLayout mContainerLoading;
- private RelativeLayout mContainerError;
- private FreeFlowContainer mCameraList;
- private VGridLayout grid;
- private ListLayout custom;
- private CameraGridAdapter mAdapter;
- private TheBestAdapter mTheBestAdapter;
- private String type;
- private OnListviewAction mCallback;
- private ArrayList<Camera> camera = new ArrayList<Camera>();
- private ArrayList<TheBest> theBest = new ArrayList<TheBest>();
- private final Object mAttachingActivityLock = new Object();
- private boolean syncVariable = false;
- private Point mSize;
- FreeFlowLayout[] layouts;
- int currLayoutIndex = 0;
- private static class LazyHolder {
- private static final CamerasFragment camerasFragment = new CamerasFragment();
- }
- public static CamerasFragment getInstance() {
- return LazyHolder.camerasFragment;
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Display display = getActivity().getWindowManager().getDefaultDisplay();
- mSize = new Point();
- display.getSize(mSize);
- //Our new layout
- custom = new ListLayout();
- //Grid Layout
- grid = new VGridLayout();
- VGridLayout.LayoutParams params = new VGridLayout.LayoutParams(mSize.x/2, mSize.x/2);
- grid.setLayoutParams(params);
- //Vertical Layout
- VLayout vlayout = new VLayout();
- VLayout.LayoutParams params2 = new VLayout.LayoutParams(mSize.x);
- vlayout.setLayoutParams(params2);
- //HLayout
- HLayout hlayout = new HLayout();
- hlayout.setLayoutParams(new HLayout.LayoutParams(mSize.x));
- layouts = new FreeFlowLayout[]{custom, grid, vlayout, hlayout};
- try {
- type = getArguments().getString("type");
- } catch (Exception e) {
- type = TagApplication.ERROR;
- }
- }
- @SuppressWarnings("ResourceAsColor")
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_cameras, container, false);
- if (view != null) {
- mCameraList = (FreeFlowContainer) view.findViewById(R.id.list_cameras);
- mContainerLoading = (RelativeLayout) view.findViewById(R.id.container_loading);
- mContainerError = (RelativeLayout) view.findViewById(R.id.container_error);
- }
- return view;
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if(type.equals(HomeFragment.TAG)) {
- mAdapter = new CameraGridAdapter(
- getActivity(),
- camera,
- onGridOpenDetailsClick);
- mCameraList.setLayout(layouts[currLayoutIndex]);
- mCameraList.setAdapter(mAdapter);
- } else if(type.equals(TheBestFragment.TAG)) {
- // mTheBestAdapter = new TheBestAdapter(
- // getActivity(),
- // theBest);
- //
- // mCameraList.setAdapter(mTheBestAdapter);
- }
- }
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- try {
- mCallback = (OnListviewAction) getActivity();
- } catch (ClassCastException e) {
- throw new ClassCastException("Activity must implement NavigationDrawerCallbacks.");
- }
- synchronized (mAttachingActivityLock) {
- syncVariable = true;
- mAttachingActivityLock.notifyAll();
- }
- }
- @Override
- public void onResume() {
- super.onResume();
- mCallback.onLoad(type);
- mActivity = getActivity();
- mCameraList.setVisibility(View.VISIBLE);
- mContainerLoading.setVisibility(View.GONE);
- mContainerError.setVisibility(View.GONE);
- if(!type.equals(TagApplication.ERROR)) {
- if (type.equals(HomeFragment.TAG)) {
- loadCameras();
- } else if (type.equals(TheBestFragment.TAG)) {
- //loadTheBest(); --> não foi feito ainda
- }
- }
- }
- @Override
- public void onRefresh() {
- if(TagApplication.hasInternetConnection) {
- mCallback.onRefresh();
- } else {
- //mCameraList.hideProgress();
- }
- }
- @SuppressWarnings("unchecked")
- private void loadCameras() {
- try {
- synchronized (mAttachingActivityLock) {
- while(!syncVariable){
- try {
- mAttachingActivityLock.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- new CursorLoaderParser(
- mActivity,
- getLoaderManager(),
- Camera.class,
- new CursorLoaderParser.OnLoaderEnd() {
- @Override
- public void onEnd(List<?> items) {
- if(items.size() > 0) {
- camera.clear();
- camera.addAll((List<Camera>) items);
- mAdapter.update(camera);
- mCameraList.dataInvalidated();
- mCameraList.setVisibility(View.VISIBLE);
- mContainerLoading.setVisibility(View.GONE);
- mContainerError.setVisibility(View.GONE);
- } else {
- // mCameraList.setVisibility(View.GONE);
- // mContainerLoading.setVisibility(View.GONE);
- // mContainerError.setVisibility(View.VISIBLE);
- }
- }
- }, getResources().getInteger(R.integer.cameras_loader)
- );
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void loadTheBest() {
- try {
- new CursorLoaderParser(
- getActivity(),
- getLoaderManager(),
- TheBest.class,
- new CursorLoaderParser.OnLoaderEnd() {
- @Override
- public void onEnd(List<?> items) {
- DebugUtil.log("SIZE: " + items.size());
- theBest.clear();
- theBest.addAll((List<TheBest>) items);
- mTheBestAdapter.notifyDataSetChanged();
- }
- }, getResources().getInteger(R.integer.the_best_loader)
- );
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- CameraGridAdapter.OnGridOpenDetailsClick onGridOpenDetailsClick = new CameraGridAdapter.OnGridOpenDetailsClick() {
- @Override
- public void onItemClick(Camera camera) {
- }
- };
- private CamerasAdapter.OnOpenDetailsClick onOpenDetailsClick = new CamerasAdapter.OnOpenDetailsClick() {
- @Override
- public void onItemClick(Camera camera) {
- Bundle bundle = new Bundle();
- bundle.putInt("remote_id", camera.getRemoteId());
- bundle.putInt("id", Integer.valueOf(camera.getSystemId()));
- bundle.putString("url_video", camera.getWpZoomEmbedHd());
- bundle.putString("image", TagApplication.URL_TEMP_SERVER + camera.getUrlImage());
- bundle.putString("city", camera.getCity());
- bundle.putString("state", camera.getState());
- bundle.putString("local", camera.getTitle());
- bundle.putString("description", camera.getDescription());
- bundle.putString("content", camera.getContent());
- bundle.putString("views", camera.getViews());
- bundle.putString("latitude", camera.getLatitude());
- bundle.putString("longitude", camera.getLongitude());
- bundle.putBoolean("hasSound", camera.getHasSound().equals("1"));
- DetailCameraFragment detailCameraFragment = new DetailCameraFragment();
- detailCameraFragment.setArguments(bundle);
- replaceFragments(detailCameraFragment);
- }
- };
- private void replaceFragments(Fragment fragment) {
- ((BaseActivity)getActivity()).replaceFragment(
- fragment,
- FragmentTransaction.TRANSIT_FRAGMENT_OPEN,
- HomeFragment.newInstance());
- }
- public static CamerasFragment newInstance() {
- return new CamerasFragment();
- }
- public static interface OnListviewAction {
- void onRefresh();
- void onLoad(String type);
- void onLoadMore(int page);
- }
- // Metodo da interface, é chamado no fim do sync do syncAdapter
- @Override
- public void onEndRefresh() {
- Thread refreshList = new Thread(new Runnable() {
- @Override
- public void run() {
- loadCameras();
- }
- });
- refreshList.start();
- }
- @Override
- public void onLoadMoreEnd() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment