Skip to content

Instantly share code, notes, and snippets.

@IlyaEremin
Created August 22, 2014 10:18
Show Gist options
  • Save IlyaEremin/acb57dbac4f543957e30 to your computer and use it in GitHub Desktop.
Save IlyaEremin/acb57dbac4f543957e30 to your computer and use it in GitHub Desktop.
4Ruslan
package com.aclgrc.fragments;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.aclgrc.adapters.ObjectivesArrayAdapter;
import com.aclgrc.android.R;
import com.aclgrc.api.RequestApi;
import com.aclgrc.api.models.AccountsUser;
import com.aclgrc.api.models.Audit;
import com.aclgrc.api.models.Objective;
import com.aclgrc.api.models.TimeEntry;
import com.aclgrc.common.Const;
import com.aclgrc.common.Errors;
import com.aclgrc.common.Req;
import com.aclgrc.common.tuples.Pair;
import com.aclgrc.events.EventObjectiveCreated;
import com.aclgrc.events.EventsBus;
import com.aclgrc.events.EventObjectiveUpdated;
import com.aclgrc.events.EventTimeUpdated;
import com.aclgrc.events.EventsBus;
import com.aclgrc.widget.OfflineView;
import com.f2prateek.dart.Dart;
import com.f2prateek.dart.InjectExtra;
import com.squareup.otto.Subscribe;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnItemClick;
import fr.castorflex.android.smoothprogressbar.SmoothProgressBar;
import rx.Notification;
import rx.Observable;
import rx.Subscription;
import rx.android.observables.AndroidObservable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
public class FieldworkMainFragment extends Fragment {
@InjectView(R.id.lv) ListView lv;
@Nullable List<Objective.Holder> holders;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
setHasOptionsMenu(true);
Dart.inject(this);
}
@Override public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.screen_w_list, container, false);
ButterKnife.inject(this, rootView);
return rootView;
}
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
restore(savedInstanceState);
}
if (holders != null) {
fillUI(holders);
} else {
fetchObjectivesAccountUsers();
}
}
void fetchObjectivesAccountUsers() {
holders = loadData(); // fake method for example
fillUI(holders);
}
void fillUI(List<Objective.Holder> holders) {
this.holders = holders;
lv.setAdapter(new ObjectivesArrayAdapter(getActivity(), holders));
}
void restore(@NotNull Bundle state) {
holders = state.getParcelableArrayList(Const.ENTITY_MODEL);
}
@Override public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelableArrayList(Const.ENTITY_MODEL, new ArrayList<>(holders));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment