Skip to content

Commit a81351d

Browse files
committed
Fix crash on empty data && Assign classloader
1 parent 7f7d161 commit a81351d

3 files changed

Lines changed: 16 additions & 10 deletions

File tree

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
applicationId "ryey.easeroperationpluginexample"
77
minSdkVersion 19
88
targetSdkVersion 27
9-
versionCode 2
10-
versionName "1.1"
9+
versionCode 3
10+
versionName "1.2"
1111
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1212
}
1313
buildTypes {

app/src/main/java/ryey/easeroperationpluginexample/EditDataActivity.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,26 @@
3333

3434
public class EditDataActivity extends AppCompatActivity {
3535

36-
ExampleData data;
37-
private PluginDataFormat format;
36+
private PluginDataFormat format = PluginDataFormat.JSON;
3837
private EditText editText;
3938

4039
@Override
4140
protected void onCreate(Bundle savedInstanceState) {
4241
super.onCreate(savedInstanceState);
4342
setContentView(R.layout.activity_edit_data);
44-
Intent intent = getIntent();
45-
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
46-
data = new ExampleData(remoteOperationData);
47-
format = remoteOperationData.format;
4843
editText = findViewById(R.id.editText);
4944

50-
editText.setText(data.packageName);
45+
Intent intent = getIntent();
46+
if (intent != null) {
47+
intent.setExtrasClassLoader(RemoteOperationData.class.getClassLoader());
48+
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
49+
if (remoteOperationData != null) {
50+
ExampleData data = new ExampleData(remoteOperationData);
51+
format = remoteOperationData.format;
52+
editText.setText(data.packageName);
53+
}
54+
}
55+
5156
}
5257

5358
@Override
@@ -59,7 +64,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
5964
@Override
6065
public boolean onOptionsItemSelected(MenuItem item) {
6166
if (item.getItemId() == R.id.ok) {
62-
data = new ExampleData(editText.getText().toString());
67+
ExampleData data = new ExampleData(editText.getText().toString());
6368
Intent intent = new Intent();
6469
if (format == null) {
6570
format = PluginDataFormat.JSON;

app/src/main/java/ryey/easeroperationpluginexample/TriggerOperationReceiver.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class TriggerOperationReceiver extends BroadcastReceiver {
3333
public void onReceive(Context context, Intent intent) {
3434
Log.d("TriggerReceiver", "onReceive");
3535
if (RemotePlugin.OperationPlugin.ACTION_TRIGGER.equals(intent.getAction())) {
36+
intent.setExtrasClassLoader(RemoteOperationData.class.getClassLoader());
3637
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
3738
ExampleData data = new ExampleData(remoteOperationData);
3839
Intent startActivityIntent = context.getPackageManager().getLaunchIntentForPackage(data.packageName);

0 commit comments

Comments
 (0)