package com.nilhcem.bblfr.ui.baggers.cities.fallback;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.nilhcem.bblfr.BBLApplication;
import com.nilhcem.bblfr.R;
import com.nilhcem.bblfr.core.ui.recyclerview.EmptyRecyclerView;
import com.nilhcem.bblfr.core.ui.recyclerview.SimpleDividerItemDecoration;
import com.nilhcem.bblfr.core.utils.CompatibilityUtils;
import com.nilhcem.bblfr.jobs.baggers.BaggersService;
import com.nilhcem.bblfr.model.baggers.City;
import com.nilhcem.bblfr.ui.baggers.list.BaggersListActivity;
import com.nilhcem.bblfr.ui.navigationdrawer.NavigationDrawerActivity;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import timber.log.Timber;
/**
* Displays a list of cities.
* <p>
* Fallback for {@link com.nilhcem.bblfr.ui.baggers.cities.CitiesMapActivity}
* for devices without Google Play Services)
* </p>
*/
public class CitiesFallbackActivity extends NavigationDrawerActivity implements CitiesFallbackAdapter.OnCitySelectedListener {
@Inject BaggersService mBaggersService;
@BindView(R.id.cities_fallback_recycler_view) EmptyRecyclerView mRecyclerView;
@BindView(R.id.loading_view) View mEmptyView;
private CitiesFallbackAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BBLApplication.get(this).component().inject(this);
setContentView(R.layout.cities_fallback_activity);
getSupportActionBar().setTitle(R.string.baggers_map_toolbar_title);
initRecyclerView();
}
@Override
protected void onStart() {
super.onStart();
mSubscription = mBaggersService.getBaggersCities()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::onCitiesLoaded);
}
@Override
public void onCitySelected(City city) {
Timber.d("City selected");
mPrefs.setFavoriteCity(city);
startActivity(BaggersListActivity.createLaunchIntent(this, city));
}
private void initRecyclerView() {
mRecyclerView.setEmptyView(mEmptyView);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration(CompatibilityUtils.getDrawable(this, R.drawable.line_divider)));
mAdapter = new CitiesFallbackAdapter(this);
mRecyclerView.setAdapter(mAdapter);
}
private void onCitiesLoaded(List<City> cities) {
Timber.d("BBL Cities loaded from DB");
mAdapter.updateItems(cities);
}
}