Skip to content

Instantly share code, notes, and snippets.

@ouchadam
Last active December 20, 2015 06:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ouchadam/6088810 to your computer and use it in GitHub Desktop.
Save ouchadam/6088810 to your computer and use it in GitHub Desktop.
Using merlin to enable and disable a button based on network availability
public class FooActivity extends Activity implements Connectable, Disconnectable, Bindable {
private Merlin merlin;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initMerlin();
button = (Button) findViewById(R.id.button);
}
private void initMerlin() {
merlin = new Merlin.Builder().withConnectableCallbacks().withDisconnectableCallbacks().withBindableCallbacks().build(this);
merlin.registerConnectable(this);
merlin.registerDisconnectable(this);
merlin.registerBindable(this);
}
@Override
protected void onResume() {
super.onResume();
merlin.bind();
}
@Override
public void onConnect() {
button.setEnabled(true);
}
@Override
public void onDisconnect() {
button.setEnabled(false);
}
@Override
public void onBind(NetworkStatus networkStatus) {
button.setEnabled(networkStatus.isAvailable());
}
@Override
protected void onPause() {
super.onPause();
merlin.unbind();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment