Skip to content

Instantly share code, notes, and snippets.

@AruLNadhaN
Created January 14, 2017 05:49
Show Gist options
  • Save AruLNadhaN/b0f89f94f153881f631f1b63d2645fde to your computer and use it in GitHub Desktop.
Save AruLNadhaN/b0f89f94f153881f631f1b63d2645fde to your computer and use it in GitHub Desktop.
Email string is always NULL
public class BrowseFragment extends TiFragment<BrowsePresenter, BrowseView> implements BrowseView, BrowseAdapter.ClickListener{
int RC_SIGN_IN = 100;
BrowseAdapter mBrowseAdapter;
GridLayoutManager layoutManager;
@BindView(R.id.progress)
ProgressBar mProgress;
@BindView(R.id.list)
RecyclerView mItemRecycler;
@BindView(R.id.bmb)
BoomMenuButton bmb;
@NonNull
@Override
public BrowsePresenter providePresenter() {
return new BrowsePresenter();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View fragmentView = inflater.inflate(R.layout.fragment_browse, container, false);
ButterKnife.bind(this, fragmentView);
setupViews();
initBoomButton();
return fragmentView;
}
@Override
public void onCartAdd(Product item) {
providePresenter().addToCart(item, 1); // calling the presenter!
}
@Override
public void onCartRemove(Product item) {
providePresenter().addToCart(item, 0);
}
@Override
public void onItemQuantity(Product item, float quantity) {
providePresenter().addToCart(item, quantity);
}
package me.arulnadhan.grocerycorecommon.ui.browse;
import android.support.annotation.NonNull;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ServerValue;
import com.kelvinapps.rxfirebase.RxFirebaseAuth;
import com.kelvinapps.rxfirebase.RxFirebaseDatabase;
import net.grandcentrix.thirtyinch.TiPresenter;
import net.grandcentrix.thirtyinch.rx.RxTiPresenterSubscriptionHandler;
import java.util.ArrayList;
import java.util.List;
import me.arulnadhan.grocerycorecommon.data.model.Customer;
import me.arulnadhan.grocerycorecommon.data.model.Product;
import me.arulnadhan.grocerycorecommon.utils.Helper;
import timber.log.Timber;
/**
* Created by AruLNadhaN on 10/12/2016.
*/
public class BrowsePresenter extends TiPresenter<BrowseView> {
private RxTiPresenterSubscriptionHandler rxHelper = new RxTiPresenterSubscriptionHandler(this);
private FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance();
private FirebaseAuth mFirebaseAuth = FirebaseAuth.getInstance();
private DatabaseReference mDatabase = mFirebaseDatabase.getReference();
private DatabaseReference mUserDB = mFirebaseDatabase.getReference().child("customers");
private DatabaseReference mProdDB = mFirebaseDatabase.getReference().child("S01/Products");
private Query mRef;
private DatabaseReference cartRef;
private FirebaseUser mUser;
private String selectedCat, Email;
private final List<Product> ProdList = new ArrayList<>();
@Override
protected void onAttachView(@NonNull BrowseView view) {
super.onAttachView(view);
authenticate();
getProducts();
}
private void getProducts() {
final BrowseView view = getView();
view.showMessageLayout(false);
view.showProgress();
mRef = mProdDB.child("C01");
rxHelper.manageSubscription(
RxFirebaseDatabase.observeValueEvent(mRef,
dataSnapshot -> {
List<Product> mProd = new ArrayList<>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Product Prod = Product.create(postSnapshot);
mProd.add(Prod);
}
return mProd;
})
.subscribe(mProd -> {
view.hideProgress();
Timber.d(mProd.get(0).productName());
view.showItems(mProd);
})
);
}
public void addToCart(Product item, float quantity) {
Timber.d("Email >> "+ Email); // Email is always NULL
}
private void authenticate() {
Timber.d("AUTH Listener");
rxHelper.manageViewSubscription(
RxFirebaseAuth.observeAuthState(mFirebaseAuth)
.subscribe(firebaseUser -> {
if (firebaseUser != null) {
mUser = firebaseUser;
Email = firebaseUser.getEmail();
Timber.d("Email >> "+ Email); // Email is returned correctly!
Timber.d("user Photo: " + firebaseUser.getPhotoUrl());
} else {
Timber.d("TOKEN NULL");
sendToView(BrowseView::showLogin);
}
})
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment