首页 > 其他分享 >2024/6/2 第二阶段冲刺

2024/6/2 第二阶段冲刺

时间:2024-06-02 23:10:56浏览次数:12  
标签:binding 冲刺 2024 chatapptest user import 第二阶段 com Constants

 1 package com.example.chatapptest.activities;
 2 
 3 import androidx.appcompat.app.AppCompatActivity;
 4 
 5 import android.content.Intent;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 
 9 import com.example.chatapptest.R;
10 import com.example.chatapptest.adapters.UsersAdapter;
11 import com.example.chatapptest.databinding.ActivityUsersBinding;
12 import com.example.chatapptest.listeners.UserListener;
13 import com.example.chatapptest.models.User;
14 import com.example.chatapptest.utilities.Constants;
15 import com.example.chatapptest.utilities.PreferenceManager;
16 import com.google.firebase.firestore.FirebaseFirestore;
17 import com.google.firebase.firestore.QueryDocumentSnapshot;
18 
19 import java.util.ArrayList;
20 import java.util.List;
21 
22 public class UsersActivity extends AppCompatActivity implements UserListener {
23 
24     private ActivityUsersBinding binding;
25     private PreferenceManager preferenceManager;
26 
27     @Override
28     protected void onCreate(Bundle savedInstanceState) {
29         super.onCreate(savedInstanceState);
30         binding = ActivityUsersBinding.inflate(getLayoutInflater());
31         setContentView(binding.getRoot());
32         preferenceManager = new PreferenceManager(getApplicationContext());
33         setListeners();
34         getUsers();
35     }
36 
37     private void setListeners(){
38         binding.imageBack.setOnClickListener(v -> onBackPressed());
39     }
40 
41     private void getUsers(){
42         loading(true);
43         FirebaseFirestore database = FirebaseFirestore.getInstance();
44         database.collection(Constants.KEY_COLLECTION_USERS)
45                 .get()
46                 .addOnCompleteListener(task -> {
47                     loading(false);
48                     String currentUserId = preferenceManager.getString(Constants.KEY_USER_ID);
49                     if(task.isSuccessful() && task.getResult() != null){
50                         List<User> users = new ArrayList<>();
51                         for(QueryDocumentSnapshot queryDocumentSnapshot : task.getResult()){
52                             if(currentUserId.equals(queryDocumentSnapshot.getId())){
53                                 continue;
54                             }
55                             User user = new User();
56                             user.name = queryDocumentSnapshot.getString(Constants.KEY_NAME);
57                             user.email = queryDocumentSnapshot.getString(Constants.KEY_EMAIL);
58                             user.image = queryDocumentSnapshot.getString(Constants.KEY_IMAGE);
59                             user.token = queryDocumentSnapshot.getString(Constants.KEY_FCM_TOKEN);
60                             user.id = queryDocumentSnapshot.getId();
61                             users.add(user);
62                         }
63                         if(users.size() > 0){
64                             UsersAdapter usersAdapter = new UsersAdapter(users,this);
65                             binding.userRecyclerView.setAdapter(usersAdapter);
66                             binding.userRecyclerView.setVisibility(View.VISIBLE);
67                         }else {
68                             showErrorMessage();
69                         }
70                     }else {
71                         showErrorMessage();
72                     }
73                 });
74     }
75 
76     private void showErrorMessage(){
77         binding.textErrorMessage.setText(String.format("%s","No user available"));
78         binding.textErrorMessage.setVisibility(View.VISIBLE);
79     }
80 
81     private void loading(Boolean isLoading){
82         if(isLoading){
83             binding.progressBar.setVisibility(View.VISIBLE);
84         }else {
85             binding.progressBar.setVisibility(View.INVISIBLE);
86         }
87     }
88 
89     @Override
90     public void onUserClicked(User user) {
91         Intent intent = new Intent(getApplicationContext(), ChatActivity.class);
92         intent.putExtra(Constants.KEY_USER,user);
93         startActivity(intent);
94         finish();
95     }
96 }

 

标签:binding,冲刺,2024,chatapptest,user,import,第二阶段,com,Constants
From: https://www.cnblogs.com/Lyh3012648079/p/18227796

相关文章

  • 各位用到git的,请注意CVE-2024-32002安全漏洞
    解释几个缩写名词CVE:CVE是CommonVulnerabilitiesandExposures的缩写,指的是通用漏洞与暴露(CommonVulnerabilitiesandExposures),它是一个用于标识和跟踪计算机系统中的安全漏洞的标准化命名方案,每个CVE条目都包含一个唯一标识符(CVEID),以及漏洞的描述、评分、影响......
  • 【2024年5月备考新增】】 考前篇(25)《必备资料(8) - 论文串讲-成本管理》
    过程定义输入工具技术输出实际应用规划成本管理确定如何估算预算、管理、监督和控制项目成本1、项目章程2、项目管理计划.进度管理计划.风险管理计划3、事业环境因素4、组织过程资产1、专家判断2、数据分析.备选方案分析3、会议1、成本管理计划1、创......
  • 2024年8大数字项目管理平台分享
    本文将分享8个数字项目管理平台:PingCode、Worktile、Miro、Forecast、Paymo、Teamwork、ProjectManager.com、Basecamp。在快节奏的商业环境中,有效的项目管理是成功的关键。数字项目管理平台作为提升项目效率、优化资源配置和增强团队协作的重要工具,已成为众多企业不可或缺的一......
  • 【考前指导】2024年高考物理最后一课
    【考前指导】2024年高考物理最后一课https://mp.weixin.qq.com/s/JWVsX4gvqVZFgVov12nZ1w【物理实验】高中物理实验全总结https://mp.weixin.qq.com/s/2VaF-vv1DfhfOjHkPo0SFw【物理笔记】厉害了我的物理!高考学霸物理笔记(完整版)https://mp.weixin.qq.com/s/jWpAoP7lGvyglSlqE......
  • 赶紧收藏!2024 年最常见 20道 Kafka面试题(二)
    上一篇地址:赶紧收藏!2024年最常见20道Kafka面试题(一)-CSDN博客三、Kafka的设计架构是什么?Kafka的设计架构是分布式和可扩展的,旨在处理高吞吐量的数据流。以下是Kafka设计架构的关键组成部分及其功能:Producer(生产者):生产者是向Kafka集群发送消息的客户端。它们负责创建消息......
  • GB-T 18262-2024 人造板机械 通用技术条件
    GB-T18262-2024人造板机械通用技术条件概览编写背景随着人造板行业的快速发展,对人造板机械的质量和性能要求越来越高。为了规范人造板机械的生产和使用,提高产品的可靠性和安全性,GB-T18262-2024《人造板机械通用技术条件》应运而生。这一标准旨在为人造板机械的设计、制......
  • GB-T 18003-2024 人造板机械 设备型号编制方法
    GB-T18003-2024人造板机械设备型号编制方法编写背景随着人造板行业的快速发展,标准化的设备型号编制方法对于提高行业内部的沟通效率、促进设备管理的规范化具有重要意义。GB-T18003-2024标准是针对人造板机械领域制定的一项国家级推荐性标准,旨在统一人造板机械设备的......
  • JSOI 信息与未来2024游记
    JSOI信息与未来2024游记day0似乎就一天祭day1签到通知12:10到,结果13:10才开始先开T1签到题一如既往是幸运数字不得不吐槽一下出题人的语文水平了先20min整完这题,过~开T2一看什么红绿灯灯管,感觉是道模拟,先放着开T3一个明显的BFS连通块,思考了一下确定先做T2jc......
  • 20240602比赛总结
    T1等差子序列https://gxyzoj.com/d/hzoj/p/3638主要在枚举的方法上,要选小常数较小的方法30pts:枚举前两个数,然后算出第三个数的值,看位置是否满足条件100pts:上面的方法中,不是每组数都可以满足条件,可能会出现大于n或小于1的情况,但是却无法避免对它的的枚举,所以常数较大可以......
  • 2024.6.2
    2024.6.2【明霄升海平,飞彩镌流年。】Sunday四月廿六A.矩形覆盖题目描述有N个矩形,矩形的底边边长为1,且均在X轴上,高度给出,第i个矩形的高为h[i],求最少需要几个矩形才能覆盖这个图形。例如h=[3,2,4,2]的图形如下:image容易发现,只需要3个矩形就能覆盖这个图形。输入......