Skip to content

Commit

Permalink
Getting DataHolder in onCreate() or onCreateView()
Browse files Browse the repository at this point in the history
* Calling it in UI Thread only
* To mitigate Fragment detached crash scenarios
  • Loading branch information
aneesh-neelam committed Jul 22, 2015
1 parent f1355d6 commit 074b09c
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,14 @@ public class DetailsActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

List<Course> courseList = ((MainApplication) getApplication()).getDataHolderInstanceInitialized().getCourses();

Intent intent = getIntent();
if (intent.hasExtra(Constants.INTENT_EXTRA_CLASS_NUMBER)) {
setContentView(R.layout.activity_details);
initToolbar();
loadProgress = (ProgressBar) findViewById(R.id.progress_bar_details);
new LoadCourseTask().execute(intent.getIntExtra(Constants.INTENT_EXTRA_CLASS_NUMBER, -1));
new LoadCourseTask(courseList).execute(intent.getIntExtra(Constants.INTENT_EXTRA_CLASS_NUMBER, -1));

} else {
setContentView(R.layout.app_message_not_available);
Expand Down Expand Up @@ -94,6 +95,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
}

private class LoadCourseTask extends AsyncTask<Integer, Void, Course> {

private List<Course> courses;

LoadCourseTask(List<Course> courses) {
this.courses = courses;
}

@Override
protected void onPreExecute() {
loadProgress.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -129,8 +137,7 @@ protected Course doInBackground(Integer... params) {
return null;
}

List<Course> courseList = ((MainApplication) getApplication()).getDataHolderInstanceInitialized().getCourses();
for (Course courseItem : courseList) {
for (Course courseItem : courses) {
if (courseItem.getClassNumber() == classNumber) {
foundCourse = courseItem;
}
Expand All @@ -139,5 +146,4 @@ protected Course doInBackground(Integer... params) {
}
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -177,15 +177,17 @@ public void pullToRefresh(final ResultListener callback) {
@Override
public void onSuccess() {
initializeData();
if (callback != null)
if (callback != null) {
callback.onSuccess();
}
EventBus.getDefault().post(new RefreshFragmentEvent());
}

@Override
public void onFailure(Status status) {
if (callback != null)
if (callback != null) {
callback.onFailure(status);
}
Toast.makeText(MainActivity.this, status.getMessage(), Toast.LENGTH_SHORT).show();
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,8 @@ public void run() {
public void onSuccess() {
try {
((MainApplication) getActivity().getApplication()).getDataHolderInstance().refreshData(getActivity(), resultListener);
} catch (NullPointerException ignore){}

} catch (NullPointerException ignore){
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,

public void initialize() {
cgpa = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getCgpa();
grades = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getGrades();
gradeCounts = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getGradeCounts();
semesterWiseGrades = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getSemesterWiseGrades();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,23 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
}

public void initialize() {
messages = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getMessages();
Collections.reverse(messages);
initializeData();
layoutManager = new LinearLayoutManager(getActivity());
messageListAdapter = new MessageListAdapter(getActivity(), messages);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view_messages);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(messageListAdapter);
String Title = getActivity().getResources().getString(R.string.fragment_messages_title);
getActivity().setTitle(Title);
}

private void initializeData() {
try {
messages = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getMessages();
Collections.reverse(messages);
messageListAdapter.notifyDataSetChanged();
} catch (Exception ignore) {
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ public void onFailure(Status status) {
}

private void initializeData() {
courses = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getCourses();
new LoadDayTask().execute();
}

Expand Down Expand Up @@ -148,7 +149,6 @@ protected void onPreExecute() {
@Override
protected List<Pair<Course, Timing>> doInBackground(Void... params) {
List<Pair<Course, Timing>> finalArray = new ArrayList<>();
courses = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getCourses();
for (Course course : courses) {
Timing lastTiming = new Timing();
for (Timing timing : course.getTimings()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ public void onFailure(Status status) {
}

private void initializeData() {
courses = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getCourses();
new LoadTodayTask().execute();
}

Expand Down Expand Up @@ -169,7 +170,6 @@ protected void onPreExecute() {
@Override
protected List<Pair<Course, Timing>> doInBackground(Void... params) {
List<Pair<Course, Timing>> finalArray = new ArrayList<>();
courses = ((MainApplication) getActivity().getApplication()).getDataHolderInstanceInitialized().getCourses();
for (Course course : courses) {
Timing lastTiming = new Timing();
if (course.getTimings() != null) {
Expand Down

0 comments on commit 074b09c

Please sign in to comment.