Created
September 14, 2016 06:58
-
-
Save maydin/371c76412ee1b5509a39a885d9136f10 to your computer and use it in GitHub Desktop.
MainActivity with Rx and Dagger 2
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; | |
@Inject | |
RxDiscoveryManager rxDiscoveryManager; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
((App) getApplication()).getComponent().inject(this); | |
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); | |
} | |
@Override | |
public void call(Appliance appliance) { | |
if (appliance.status == Appliance.APPLIANCE_LIST_STATUS_ADDED) | |
this.applianceAdapter.addAppliance(appliance); | |
else | |
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(); | |
if(rxSensorSubscriptionAsync != null) | |
rxSensorSubscriptionAsync.unsubscribe(); | |
} | |
public void stopDiscovery(View v) { | |
if (rxSensorSubscriptionAsync == null) | |
return; | |
this.applianceAdapter.clearAppliances(); | |
rxSensorSubscriptionAsync.unsubscribe(); | |
} | |
public void newActivity(View v) { | |
Intent intent = new Intent(this, SecondActivity.class); | |
startActivity(intent); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment