Skip to content

Commit a2fe71e

Browse files
committed
Fixed #14 again
1 parent 1319837 commit a2fe71e

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

app/src/main/java/com/gianlu/aria2android/MainActivity.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,21 @@ public class MainActivity extends ActivityWithDialog {
6767
@Override
6868
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
6969
serviceMessenger = new Messenger(iBinder);
70+
71+
IntentFilter filter = new IntentFilter();
72+
for (BinService.Action action : BinService.Action.values())
73+
filter.addAction(action.toString());
74+
75+
receiver = new ServiceBroadcastReceiver();
76+
broadcastManager.registerReceiver(receiver, filter);
77+
7078
askForStatus();
7179
}
7280

7381
@Override
7482
public void onServiceDisconnected(ComponentName componentName) {
7583
serviceMessenger = null;
84+
broadcastManager.unregisterReceiver(receiver);
7685
}
7786
};
7887
private ToggleButton toggleServer;
@@ -413,12 +422,7 @@ public void askRationale(@NonNull AlertDialog.Builder builder) {
413422
}
414423
}
415424

416-
IntentFilter filter = new IntentFilter();
417-
for (BinService.Action action : BinService.Action.values())
418-
filter.addAction(action.toString());
419425

420-
receiver = new ServiceBroadcastReceiver();
421-
broadcastManager.registerReceiver(receiver, filter);
422426
try {
423427
bindService(new Intent(this, BinService.class), serviceConnection, BIND_AUTO_CREATE);
424428
startService(new Intent(this, BinService.class)
@@ -427,13 +431,8 @@ public void askRationale(@NonNull AlertDialog.Builder builder) {
427431
return true;
428432
} catch (JSONException ex) {
429433
Toaster.with(this).message(R.string.failedLoadingOptions).ex(ex).show();
430-
broadcastManager.unregisterReceiver(receiver);
431-
return false;
432-
} /*catch (RemoteException ex) {
433-
Toaster.with(this).message(R.string.failedStarting).ex(ex).show();
434-
LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver);
435434
return false;
436-
} */
435+
}
437436
}
438437

439438
@Override
@@ -465,7 +464,7 @@ private boolean stopService() {
465464
startService(new Intent(this, BinService.class)
466465
.setAction(BinService.ACTION_STOP_SERVICE));
467466

468-
broadcastManager.unregisterReceiver(receiver);
467+
469468

470469
Bundle bundle = null;
471470
if (Prefs.getLong(PK.CURRENT_SESSION_START, -1) != -1) {
@@ -579,14 +578,13 @@ public void onReceive(Context context, final Intent intent) {
579578
runOnUiThread(() -> {
580579
switch (action) {
581580
case SERVER_STATUS:
582-
updateUiStatus(intent.getBooleanExtra("on", false)); // FIXME: UI changes are not applied
581+
updateUiStatus(intent.getBooleanExtra("on", false));
583582
break;
584583
case SERVER_START:
585584
addLog(new Logging.LogLine(Logging.LogLine.Type.INFO, getString(R.string.serverStarted)));
586585
break;
587586
case SERVER_STOP:
588587
addLog(new Logging.LogLine(Logging.LogLine.Type.INFO, getString(R.string.serverStopped)));
589-
broadcastManager.unregisterReceiver(receiver);
590588
updateUiStatus(false);
591589
break;
592590
case SERVER_EX:

0 commit comments

Comments
 (0)