Skip to content
This repository was archived by the owner on Apr 9, 2021. It is now read-only.

Commit 4df659f

Browse files
fix: device orientation changes selected forms are same
1 parent c955438 commit 4df659f

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

skunkworks_crow/src/main/java/org/odk/share/views/ui/send/fragment/BlankFormsFragment.java

+18-2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import butterknife.BindView;
3939
import butterknife.ButterKnife;
4040
import butterknife.OnClick;
41+
import timber.log.Timber;
4142

4243
import static org.odk.share.views.ui.instance.fragment.ReviewedInstancesFragment.MODE;
4344

@@ -73,7 +74,7 @@ public class BlankFormsFragment extends FormListFragment implements LoaderManage
7374

7475
private FormsAdapter formAdapter;
7576
private LinkedHashSet<Long> selectedForms;
76-
77+
private static final String SELECTED_FORMS = "SelectedForms";
7778

7879
public BlankFormsFragment() {
7980
}
@@ -90,6 +91,9 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
9091
llm.setOrientation(RecyclerView.VERTICAL);
9192
recyclerView.setLayoutManager(llm);
9293
addListItemDivider();
94+
if (savedInstanceState != null && savedInstanceState.containsKey(SELECTED_FORMS)) {
95+
selectedForms = (LinkedHashSet<Long>) savedInstanceState.getSerializable(SELECTED_FORMS);
96+
}
9397
return view;
9498
}
9599

@@ -121,6 +125,12 @@ public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor cursor) {
121125
} else {
122126
setEmptyViewVisibility(0);
123127
}
128+
try {
129+
sendButton.setEnabled(selectedForms.size() > 0);
130+
toggleButtonLabel();
131+
} catch (Exception e) {
132+
Timber.e(e);
133+
}
124134
}
125135

126136

@@ -140,10 +150,16 @@ public void onItemClick(BaseCursorViewHolder holder, int position) {
140150
}
141151

142152
sendButton.setEnabled(selectedForms.size() > 0);
143-
144153
toggleButtonLabel();
145154
}
146155

156+
@Override
157+
public void onSaveInstanceState(final Bundle outState) {
158+
super.onSaveInstanceState(outState);
159+
160+
outState.putSerializable(SELECTED_FORMS, selectedForms);
161+
}
162+
147163
private void setEmptyViewVisibility(int len) {
148164
if (len > 0) {
149165
recyclerView.setVisibility(View.VISIBLE);

skunkworks_crow/src/main/java/org/odk/share/views/ui/send/fragment/FilledFormsFragment.java

+20
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import butterknife.BindView;
3535
import butterknife.ButterKnife;
3636
import butterknife.OnClick;
37+
import timber.log.Timber;
3738

3839
import static org.odk.share.views.ui.instance.fragment.ReviewedInstancesFragment.MODE;
3940

@@ -46,6 +47,7 @@ public class FilledFormsFragment extends InstanceListFragment implements LoaderM
4647
public static final String INSTANCE_IDS = "instance_ids";
4748
private static final String INSTANCE_LIST_ACTIVITY_SORTING_ORDER = "instanceListActivitySortingOrder";
4849
private static final int INSTANCE_LOADER = 1;
50+
private static final String SELECTED_INSTANCES = "selectedInstances";
4951

5052
@BindView(R.id.recyclerview)
5153
RecyclerView recyclerView;
@@ -80,6 +82,9 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
8082
llm.setOrientation(RecyclerView.VERTICAL);
8183
recyclerView.setLayoutManager(llm);
8284
addListItemDivider();
85+
if (savedInstanceState != null && savedInstanceState.containsKey(SELECTED_INSTANCES)) {
86+
selectedInstances = (LinkedHashSet<Long>) savedInstanceState.getSerializable(SELECTED_INSTANCES);
87+
}
8388
return view;
8489
}
8590

@@ -111,6 +116,21 @@ public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor cursor) {
111116
} else {
112117
setEmptyViewVisibility(0);
113118
}
119+
120+
try {
121+
sendButton.setEnabled(selectedInstances.size() > 0);
122+
toggleButtonLabel();
123+
} catch (Exception e) {
124+
Timber.e(e);
125+
}
126+
}
127+
128+
129+
@Override
130+
public void onSaveInstanceState(@NonNull final Bundle outState) {
131+
super.onSaveInstanceState(outState);
132+
133+
outState.putSerializable(SELECTED_INSTANCES, selectedInstances);
114134
}
115135

116136

0 commit comments

Comments
 (0)