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>
This commit is contained in:
parent
7f864badb2
commit
e9de916d69
@ -32,16 +32,16 @@ abstract class BaseConfigActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(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.
|
// Restore the saved configuration if there is one; otherwise grab it from the intent.
|
||||||
if (savedInstanceState != null)
|
if (savedInstanceState != null)
|
||||||
initialConfig = savedInstanceState.getString(KEY_CURRENT_CONFIG);
|
initialConfig = savedInstanceState.getString(KEY_CURRENT_CONFIG);
|
||||||
else
|
else
|
||||||
initialConfig = getIntent().getStringExtra(KEY_CURRENT_CONFIG);
|
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);
|
protected abstract void onCurrentConfigChanged(Config config);
|
||||||
@ -53,7 +53,11 @@ abstract class BaseConfigActivity extends Activity {
|
|||||||
outState.putString(KEY_CURRENT_CONFIG, currentConfig.getName());
|
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) {
|
public void setCurrentConfig(final Config config) {
|
||||||
currentConfig = config;
|
currentConfig = config;
|
||||||
@ -65,11 +69,7 @@ abstract class BaseConfigActivity extends Activity {
|
|||||||
public void onServiceConnected(final ComponentName component, final IBinder binder) {
|
public void onServiceConnected(final ComponentName component, final IBinder binder) {
|
||||||
// We don't actually need a binding, only notification that the service is started.
|
// We don't actually need a binding, only notification that the service is started.
|
||||||
unbindService(callbacks);
|
unbindService(callbacks);
|
||||||
// Tell the subclass that it is now safe to use the service.
|
|
||||||
onServiceAvailable();
|
onServiceAvailable();
|
||||||
// Make sure the subclass activity is initialized before setting its config.
|
|
||||||
if (initialConfig != null && currentConfig == null)
|
|
||||||
setCurrentConfig(VpnService.getInstance().get(initialConfig));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -139,6 +139,7 @@ public class ConfigActivity extends BaseConfigActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onServiceAvailable() {
|
protected void onServiceAvailable() {
|
||||||
|
super.onServiceAvailable();
|
||||||
isServiceAvailable = true;
|
isServiceAvailable = true;
|
||||||
// Create the initial fragment set.
|
// Create the initial fragment set.
|
||||||
final Fragment masterFragment = fm.findFragmentById(R.id.master_fragment);
|
final Fragment masterFragment = fm.findFragmentById(R.id.master_fragment);
|
||||||
|
Loading…
Reference in New Issue
Block a user