Quellcode durchsuchen

BaseConfigActivity: Set initial config when service available

This was accidentally missed earlier when adding the optimization to
omit binding the service when unnecessary.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
master
Samuel Holland vor 7 Jahren
Ursprung
Commit
e9de916d69
2 geänderte Dateien mit 11 neuen und 10 gelöschten Zeilen
  1. +10
    -10
      app/src/main/java/com/wireguard/android/BaseConfigActivity.java
  2. +1
    -0
      app/src/main/java/com/wireguard/android/ConfigActivity.java

+ 10
- 10
app/src/main/java/com/wireguard/android/BaseConfigActivity.java Datei anzeigen

@@ -32,16 +32,16 @@ abstract class BaseConfigActivity extends Activity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Trigger starting the service as early as possible
if (VpnService.getInstance() != null)
onServiceAvailable();
else
bindService(new Intent(this, VpnService.class), callbacks, Context.BIND_AUTO_CREATE);
// Restore the saved configuration if there is one; otherwise grab it from the intent.
if (savedInstanceState != null)
initialConfig = savedInstanceState.getString(KEY_CURRENT_CONFIG);
else
initialConfig = getIntent().getStringExtra(KEY_CURRENT_CONFIG);
// Trigger starting the service as early as possible
if (VpnService.getInstance() != null)
onServiceAvailable();
else
bindService(new Intent(this, VpnService.class), callbacks, Context.BIND_AUTO_CREATE);
}

protected abstract void onCurrentConfigChanged(Config config);
@@ -53,7 +53,11 @@ abstract class BaseConfigActivity extends Activity {
outState.putString(KEY_CURRENT_CONFIG, currentConfig.getName());
}

protected abstract void onServiceAvailable();
protected void onServiceAvailable() {
// Make sure the subclass activity is initialized before setting its config.
if (initialConfig != null && currentConfig == null)
setCurrentConfig(VpnService.getInstance().get(initialConfig));
}

public void setCurrentConfig(final Config config) {
currentConfig = config;
@@ -65,11 +69,7 @@ abstract class BaseConfigActivity extends Activity {
public void onServiceConnected(final ComponentName component, final IBinder binder) {
// We don't actually need a binding, only notification that the service is started.
unbindService(callbacks);
// Tell the subclass that it is now safe to use the service.
onServiceAvailable();
// Make sure the subclass activity is initialized before setting its config.
if (initialConfig != null && currentConfig == null)
setCurrentConfig(VpnService.getInstance().get(initialConfig));
}

@Override


+ 1
- 0
app/src/main/java/com/wireguard/android/ConfigActivity.java Datei anzeigen

@@ -139,6 +139,7 @@ public class ConfigActivity extends BaseConfigActivity {

@Override
protected void onServiceAvailable() {
super.onServiceAvailable();
isServiceAvailable = true;
// Create the initial fragment set.
final Fragment masterFragment = fm.findFragmentById(R.id.master_fragment);


Laden…
Abbrechen
Speichern