Skip to content

Commit

Permalink
Fix crash on empty data && Assign classloader
Browse files Browse the repository at this point in the history
  • Loading branch information
renyuneyun committed Sep 23, 2018
1 parent 7f7d161 commit a81351d
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ android {
applicationId "ryey.easeroperationpluginexample"
minSdkVersion 19
targetSdkVersion 27
versionCode 2
versionName "1.1"
versionCode 3
versionName "1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,26 @@

public class EditDataActivity extends AppCompatActivity {

ExampleData data;
private PluginDataFormat format;
private PluginDataFormat format = PluginDataFormat.JSON;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_data);
Intent intent = getIntent();
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
data = new ExampleData(remoteOperationData);
format = remoteOperationData.format;
editText = findViewById(R.id.editText);

editText.setText(data.packageName);
Intent intent = getIntent();
if (intent != null) {
intent.setExtrasClassLoader(RemoteOperationData.class.getClassLoader());
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
if (remoteOperationData != null) {
ExampleData data = new ExampleData(remoteOperationData);
format = remoteOperationData.format;
editText.setText(data.packageName);
}
}

}

@Override
Expand All @@ -59,7 +64,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.ok) {
data = new ExampleData(editText.getText().toString());
ExampleData data = new ExampleData(editText.getText().toString());
Intent intent = new Intent();
if (format == null) {
format = PluginDataFormat.JSON;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class TriggerOperationReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.d("TriggerReceiver", "onReceive");
if (RemotePlugin.OperationPlugin.ACTION_TRIGGER.equals(intent.getAction())) {
intent.setExtrasClassLoader(RemoteOperationData.class.getClassLoader());
RemoteOperationData remoteOperationData = intent.getParcelableExtra(RemotePlugin.EXTRA_DATA);
ExampleData data = new ExampleData(remoteOperationData);
Intent startActivityIntent = context.getPackageManager().getLaunchIntentForPackage(data.packageName);
Expand Down

0 comments on commit a81351d

Please sign in to comment.