Skip to content

Commit 243072e

Browse files
committed
Crash fix when passing HSAttachment[] as bundle
1 parent c89fdfe commit 243072e

File tree

3 files changed

+40
-12
lines changed

3 files changed

+40
-12
lines changed

helpstack/src/com/tenmiles/helpstack/activities/HSActivityManager.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import android.content.Intent;
2828
import android.os.Bundle;
2929

30+
import com.google.gson.Gson;
3031
import com.tenmiles.helpstack.fragments.HSFragmentParent;
3132
import com.tenmiles.helpstack.fragments.NewIssueFragment;
3233
import com.tenmiles.helpstack.model.HSAttachment;
@@ -75,7 +76,11 @@ public static void startNewUserActivity(HSFragmentParent context, int requestCod
7576
Intent intent = new Intent(context.getActivity(), NewUserActivity.class);
7677
intent.putExtra(NewIssueActivity.EXTRAS_SUBJECT, subject);
7778
intent.putExtra(NewIssueActivity.EXTRAS_MESSAGE, message);
78-
intent.putExtra(NewIssueActivity.EXTRAS_ATTACHMENT, attachmentArray);
79+
if (attachmentArray != null) {
80+
Gson json = new Gson();
81+
intent.putExtra(NewIssueActivity.EXTRAS_ATTACHMENT, json.toJson(attachmentArray));
82+
}
83+
7984
context.startActivityForResult(intent, requestCode);
8085
}
8186

helpstack/src/com/tenmiles/helpstack/fragments/NewUserFragment.java

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@
3434
import android.widget.EditText;
3535
import android.widget.Toast;
3636

37-
import com.android.volley.VolleyError;
3837
import com.android.volley.Response.ErrorListener;
38+
import com.android.volley.VolleyError;
39+
import com.google.gson.Gson;
3940
import com.tenmiles.helpstack.R;
4041
import com.tenmiles.helpstack.activities.HSActivityManager;
4142
import com.tenmiles.helpstack.activities.NewIssueActivity;
@@ -49,12 +50,13 @@
4950

5051
public class NewUserFragment extends HSFragmentParent {
5152

52-
private static final int NEW_TICKET_REQUEST_CODE = 1003;
53-
5453
private static final String RESULT_TICKET = NewIssueActivity.RESULT_TICKET;
5554
private static final String EXTRAS_SUBJECT = NewIssueFragment.EXTRAS_SUBJECT;
5655
private static final String EXTRAS_MESSAGE = NewIssueFragment.EXTRAS_MESSAGE;
5756
private static final String EXTRAS_ATTACHMENT = NewIssueFragment.EXTRAS_ATTACHMENT;
57+
private static final String EXTRAS_FIRST_NAME = "first_name";
58+
private static final String EXTRAS_LAST_NAME = "last_name";
59+
private static final String EXTRAS_EMAIL = "email";
5860

5961
private String subject;
6062
private String message;
@@ -83,12 +85,23 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
8385
Bundle args = savedInstanceState;
8486
if (args == null) {
8587
args = getArguments();
86-
87-
if (args != null) {
88-
subject = args.getString(EXTRAS_SUBJECT);
89-
message = args.getString(EXTRAS_MESSAGE);
90-
attachmentArray = (HSAttachment[]) args.getSerializable(EXTRAS_ATTACHMENT);
88+
}
89+
90+
if (args != null) {
91+
subject = args.getString(EXTRAS_SUBJECT, null);
92+
message = args.getString(EXTRAS_MESSAGE, null);
93+
if (args.containsKey(EXTRAS_ATTACHMENT)) {
94+
String json = args.getString(EXTRAS_ATTACHMENT);
95+
Gson gson = new Gson();
96+
attachmentArray = gson.fromJson(json, HSAttachment[].class);
9197
}
98+
99+
String first_name = args.getString(EXTRAS_FIRST_NAME, null);
100+
if (first_name != null) firstNameField.setText(first_name);
101+
String last_name = args.getString(EXTRAS_LAST_NAME, null);
102+
if (last_name != null) lastNameField.setText(last_name);
103+
String email = args.getString(EXTRAS_EMAIL, null);
104+
if (email != null) emailField.setText(email);
92105
}
93106

94107
gearSource = new HSSource(getActivity());
@@ -106,9 +119,17 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
106119
@Override
107120
public void onSaveInstanceState(Bundle outState) {
108121
super.onSaveInstanceState(outState);
109-
outState.putString("first_name", firstNameField.getText().toString());
110-
outState.putString("last_name", lastNameField.getText().toString());
111-
outState.putString("email", emailField.getText().toString());
122+
outState.putString(EXTRAS_FIRST_NAME, firstNameField.getText().toString());
123+
outState.putString(EXTRAS_LAST_NAME, lastNameField.getText().toString());
124+
outState.putString(EXTRAS_EMAIL, emailField.getText().toString());
125+
outState.putString(EXTRAS_SUBJECT, subject);
126+
outState.putString(EXTRAS_MESSAGE, message);
127+
if (attachmentArray != null) {
128+
Gson gson = new Gson();
129+
outState.putSerializable(EXTRAS_ATTACHMENT, gson.toJson(attachmentArray));
130+
}
131+
132+
112133
}
113134

114135
@Override

helpstack/src/com/tenmiles/helpstack/model/HSAttachment.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929

3030
public class HSAttachment implements Serializable{
3131

32+
private static final long serialVersionUID = 8417480406914032499L;
33+
3234
@SerializedName("file_name")
3335
private String fileName;
3436

0 commit comments

Comments
 (0)