com.firebase.ui.database.FirebaseRecyclerOptions Java Examples
The following examples show how to use
com.firebase.ui.database.FirebaseRecyclerOptions.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ChatChannel.java From Shipr-Community-Android with GNU General Public License v3.0 | 6 votes |
private void setUpAdapter() { // Init Firebase Recycler options FirebaseRecyclerOptions<DeveloperMessage> options = new FirebaseRecyclerOptions.Builder<DeveloperMessage>() .setQuery(mMessagesDatabaseReference, DeveloperMessage.class) .setLifecycleOwner(this) .build(); // Init adapter mMessageAdapter = new MessageAdapter(getContext(), options) { @Override public void onLoaded() { mProgressBarCheck(); } }; // Scroll to bottom on new messages mMessageAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onItemRangeInserted(int positionStart, int itemCount) { mMessageRecycler.smoothScrollToPosition(mMessageAdapter.getItemCount()); } }); // Set the adapter mMessageRecycler.setAdapter(mMessageAdapter); }
Example #2
Source File: PostsFragment.java From friendlypix-android with Apache License 2.0 | 6 votes |
private FirebaseRecyclerAdapter<Post, PostViewHolder> getFirebaseRecyclerAdapter(Query query) { FirebaseRecyclerOptions<Post> options = new FirebaseRecyclerOptions.Builder<Post>() .setLifecycleOwner(this) .setQuery(query, Post.class) .build(); return new FirebaseRecyclerAdapter<Post, PostViewHolder>(options) { @Override protected void onBindViewHolder(@NonNull PostViewHolder postViewHolder, int position, @NonNull Post post) { setupPost(postViewHolder, post, position, null); } @Override public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.post_item, parent, false); return new PostViewHolder(view); } }; }
Example #3
Source File: MessageAdapter.java From Shipr-Community-Android with GNU General Public License v3.0 | 5 votes |
/** * Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See * {@link FirebaseRecyclerOptions} for configuration options. * * @param options */ public MessageAdapter(Context mContext, @NonNull FirebaseRecyclerOptions<DeveloperMessage> options) { super(options); this.mContext = mContext; mUser = FirebaseAuth.getInstance().getCurrentUser(); }
Example #4
Source File: DoorbellEntryAdapter.java From doorbell with Apache License 2.0 | 5 votes |
public DoorbellEntryAdapter(Context context, DatabaseReference ref) { super(new FirebaseRecyclerOptions.Builder<DoorbellEntry>() .setQuery(ref, DoorbellEntry.class) .build()); mApplicationContext = context.getApplicationContext(); mFirebaseStorage = FirebaseStorage.getInstance(); }
Example #5
Source File: RealtimeDbChatIndexActivity.java From FirebaseUI-Android with Apache License 2.0 | 5 votes |
@NonNull @Override protected FirebaseRecyclerAdapter<Chat, ChatHolder> newAdapter() { mChatIndicesRef = FirebaseDatabase.getInstance() .getReference() .child("chatIndices") .child(FirebaseAuth.getInstance().getCurrentUser().getUid()); FirebaseRecyclerOptions<Chat> options = new FirebaseRecyclerOptions.Builder<Chat>() .setIndexedQuery( mChatIndicesRef.limitToFirst(50), sChatQuery.getRef(), Chat.class) .setLifecycleOwner(this) .build(); return new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) { @NonNull @Override public ChatHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ChatHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.message, parent, false)); } @Override protected void onBindViewHolder(@NonNull ChatHolder holder, int position, @NonNull Chat model) { holder.bind(model); } @Override public void onDataChanged() { // If there are no chat messages, show a view that invites the user to add a message. mEmptyListMessage.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE); } }; }
Example #6
Source File: RealtimeDbChatActivity.java From FirebaseUI-Android with Apache License 2.0 | 5 votes |
@NonNull protected RecyclerView.Adapter newAdapter() { FirebaseRecyclerOptions<Chat> options = new FirebaseRecyclerOptions.Builder<Chat>() .setQuery(sChatQuery, Chat.class) .setLifecycleOwner(this) .build(); return new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) { @Override public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ChatHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.message, parent, false)); } @Override protected void onBindViewHolder(@NonNull ChatHolder holder, int position, @NonNull Chat model) { holder.bind(model); } @Override public void onDataChanged() { // If there are no chat messages, show a view that invites the user to add a message. mEmptyListMessage.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE); } }; }
Example #7
Source File: ChatFragment.java From ChatApp with Apache License 2.0 | 4 votes |
@Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_chat, container, false); String currentUserId = FirebaseAuth.getInstance().getCurrentUser().getUid(); // Initialize Chat Database DatabaseReference chatDatabase = FirebaseDatabase.getInstance().getReference().child("Chat").child(currentUserId); chatDatabase.keepSynced(true); // For offline use // RecyclerView related LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); linearLayoutManager.setReverseLayout(true); linearLayoutManager.setStackFromEnd(true); RecyclerView recyclerView = view.findViewById(R.id.chat_recycler); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager); DividerItemDecoration mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), linearLayoutManager.getOrientation()); recyclerView.addItemDecoration(mDividerItemDecoration); // Initializing adapter FirebaseRecyclerOptions<Chat> options = new FirebaseRecyclerOptions.Builder<Chat>().setQuery(chatDatabase.orderByChild("timestamp"), Chat.class).build(); adapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) { @Override public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.user, parent, false); return new ChatHolder(getActivity(), view, getContext()); } @Override protected void onBindViewHolder(final ChatHolder holder, int position, final Chat model) { final String userid = getRef(position).getKey(); holder.setHolder(userid, model.getMessage(), model.getTimestamp(), model.getSeen()); holder.getView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent chatIntent = new Intent(getContext(), ChatActivity.class); chatIntent.putExtra("userid", userid); startActivity(chatIntent); } }); } @Override public void onDataChanged() { super.onDataChanged(); TextView text = view.findViewById(R.id.f_chat_text); if(adapter.getItemCount() == 0) { text.setVisibility(View.VISIBLE); } else { text.setVisibility(View.GONE); } } }; recyclerView.setAdapter(adapter); return view; }
Example #8
Source File: UsersActivity.java From ChatApp with Apache License 2.0 | 4 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_users); // RecyclerView related LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext()); RecyclerView recyclerView = findViewById(R.id.users_recycler); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager); DividerItemDecoration mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), linearLayoutManager.getOrientation()); recyclerView.addItemDecoration(mDividerItemDecoration); // Initializing Users database DatabaseReference usersDatabase = FirebaseDatabase.getInstance().getReference().child("Users"); usersDatabase.keepSynced(true); // For offline use // Initializing adapter FirebaseRecyclerOptions<User> options = new FirebaseRecyclerOptions.Builder<User>().setQuery(usersDatabase.orderByChild("name"), User.class).build(); adapter = new FirebaseRecyclerAdapter<User, UserHolder>(options) { @Override protected void onBindViewHolder(final UserHolder holder, int position, User model) { final String userid = getRef(position).getKey(); holder.setHolder(userid); holder.getView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent userProfileIntent = new Intent(UsersActivity.this, ProfileActivity.class); userProfileIntent.putExtra("userid", userid); startActivity(userProfileIntent); } }); } @Override public UserHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.user, parent, false); return new UserHolder(UsersActivity.this, view, getApplicationContext()); } }; recyclerView.setAdapter(adapter); }
Example #9
Source File: PostListFragment.java From quickstart-android with Apache License 2.0 | 4 votes |
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Set up Layout Manager, reverse layout mManager = new LinearLayoutManager(getActivity()); mManager.setReverseLayout(true); mManager.setStackFromEnd(true); mRecycler.setLayoutManager(mManager); // Set up FirebaseRecyclerAdapter with the Query Query postsQuery = getQuery(mDatabase); FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder<Post>() .setQuery(postsQuery, Post.class) .build(); mAdapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>(options) { @Override public PostViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext()); return new PostViewHolder(inflater.inflate(R.layout.item_post, viewGroup, false)); } @Override protected void onBindViewHolder(PostViewHolder viewHolder, int position, final Post model) { final DatabaseReference postRef = getRef(position); // Set click listener for the whole post view final String postKey = postRef.getKey(); viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Launch PostDetailActivity Intent intent = new Intent(getActivity(), PostDetailActivity.class); intent.putExtra(PostDetailActivity.EXTRA_POST_KEY, postKey); startActivity(intent); } }); // Determine if the current user has liked this post and set UI accordingly if (model.stars.containsKey(getUid())) { viewHolder.starView.setImageResource(R.drawable.ic_toggle_star_24); } else { viewHolder.starView.setImageResource(R.drawable.ic_toggle_star_outline_24); } // Bind Post to ViewHolder, setting OnClickListener for the star button viewHolder.bindToPost(model, new View.OnClickListener() { @Override public void onClick(View starView) { // Need to write to both places the post is stored DatabaseReference globalPostRef = mDatabase.child("posts").child(postRef.getKey()); DatabaseReference userPostRef = mDatabase.child("user-posts").child(model.uid).child(postRef.getKey()); // Run two transactions onStarClicked(globalPostRef); onStarClicked(userPostRef); } }); } }; mRecycler.setAdapter(mAdapter); }
Example #10
Source File: FragmentListDevs.java From TwrpBuilder with GNU General Public License v3.0 | 4 votes |
@Nullable @Override public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.fragment_list_developers, container, false); RecyclerView recyclerView = v.findViewById(R.id.rv_list_devs); Query query = FirebaseDatabase.getInstance() .getReference("Developers"); FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(query, Developer.class) .build(); query.keepSynced(true); String s = null; adapter = new FirebaseRecyclerAdapter<Developer, ListContributorsHolder>(options) { @NonNull @Override public ListContributorsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_developers, parent, false); return new ListContributorsHolder(view); } @Override protected void onBindViewHolder(@NonNull ListContributorsHolder holder, int position, @NonNull Developer dev) { String key = getRef(position).getKey(); holder.bind( dev.getEmail(), dev.getName(), dev.getPhotoUrl(), dev.getXdaUrl(), dev.getGitId(), dev.getDonationUrl(), dev.getDescription(), key ); } @Override public void onDataChanged() { super.onDataChanged(); ProgressBar progressBar = v.findViewById(R.id.pb_builds); TextView textView = v.findViewById(R.id.tv_no_build); new FirebaseProgressBar(progressBar, textView, adapter, "Developers"); } }; LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(adapter); ProgressBar progressBar = v.findViewById(R.id.pb_builds); TextView textView = v.findViewById(R.id.tv_no_build); new FirebaseProgressBar(progressBar, textView, adapter, "Developers"); return v; }
Example #11
Source File: FragmentStatusCommon.java From TwrpBuilder with GNU General Public License v3.0 | 4 votes |
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_builds_common, container, false); RecyclerView lvBuilds = view.findViewById(R.id.lv_builds); Query query; if (filterQuery != null) { query = FirebaseDatabase.getInstance().getReference().child(reference).orderByChild(filterQuery).equalTo(equalTo); } else { query = FirebaseDatabase.getInstance() .getReference(reference); } query.keepSynced(true); FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(query, Pbuild.class) .build(); adapter = new FirebaseRecyclerAdapter<Pbuild, BuildsHolder>(options) { @NonNull @Override public BuildsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_build_common, parent, false); if (filterQuery != null) { return new BuildsHolder(view, reference, true, getContext()); } else { return new BuildsHolder(view, reference, false, getContext()); } } @Override protected void onBindViewHolder(@NonNull BuildsHolder holder, int position, @NonNull Pbuild model) { holder.bind( model.getEmail(), model.getModel(), model.getBoard(), model.getDate(), model.getBrand(), model.getDeveloperEmail(), model.getRejector(), model.getNote(), model.getUrl()); } @Override public void onDataChanged() { super.onDataChanged(); ProgressBar(); } }; ProgressBar(); LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); layoutManager.setReverseLayout(true); layoutManager.setStackFromEnd(true); lvBuilds.setLayoutManager(layoutManager); lvBuilds.setAdapter(adapter); return view; }