Created
September 14, 2016 05:27
-
-
Save maydin/d1223ddd2a0086ec0c5e5c760a276b07 to your computer and use it in GitHub Desktop.
MainActivity with Rx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MainActivity extends AppCompatActivity implements rx.functions.Action1<Appliance>{ | |
RecyclerView applianceListView; | |
ApplianceAdapter applianceAdapter; | |
private Subscription rxSensorSubscriptionAsync; | |
private RxDiscoveryManager rxDiscoveryManager; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
initializeActivity(); | |
} | |
private void initializeActivity() { | |
List<Appliance> applianceList = new ArrayList<>(); | |
applianceAdapter = new ApplianceAdapter(this, applianceList); | |
applianceListView = (RecyclerView) this.findViewById(R.id.appliance_list_view); | |
applianceListView.setAdapter(applianceAdapter); | |
applianceListView.setLayoutManager(new LinearLayoutManager(this)); | |
applianceListView.setItemAnimator(new SlideInUpAnimator(new OvershootInterpolator(1f))); | |
applianceListView.getItemAnimator().setAddDuration(2000); | |
applianceListView.getItemAnimator().setRemoveDuration(2000); | |
rxDiscoveryManager = new RxDiscoveryManager((NsdManager) this.getSystemService(Context.NSD_SERVICE)); | |
} | |
@Override | |
public void call(Appliance appliance) { | |
if(appliance.status == Appliance.APPLIANCE_LIST_STATUS_ADDED) | |
MainActivity.this.applianceAdapter.addAppliance(appliance); | |
else | |
MainActivity.this.applianceAdapter.removeAppliance(appliance); | |
} | |
public void startDiscovery(View v) { | |
rxSensorSubscriptionAsync = rxDiscoveryManager.discoveryChanged(AsyncEmitter.BackpressureMode.BUFFER) | |
.observeOn(AndroidSchedulers.mainThread()) | |
.subscribe(this); | |
} | |
@Override | |
protected void onPause() { | |
super.onPause(); | |
rxSensorSubscriptionAsync.unsubscribe(); | |
} | |
public void stopDiscovery(View v) { | |
if(rxSensorSubscriptionAsync == null) | |
return; | |
this.applianceAdapter.clearAppliances(); | |
rxSensorSubscriptionAsync.unsubscribe(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment