Android活动正在Android Studio中的循环中多次重新启动

发布于 2025-01-24 04:00:12 字数 23939 浏览 0 评论 0原文

电子邮件登录活动允许用户登录他的帐户。在这里,用户登录后,他将使用主要活动意图将他发送到主要活动。在用户登录到帐户后,他将立即发送到主要活动,主要活动正在持续重新安排。屏幕录制视频在上述链接中上传到“ https://drive.google.com/file/d/1qry2j1ykmrjdbjgmiil-t58dsgnamtgx/view?usp = sharing?usp = sharing”

此处是“ logcat”

1650989781.030 22200-22200/com.example.indiatalks V/FA: onActivityCreated
1650989781.184 22200-22231/com.example.indiatalks D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=9033321453691971948, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=9033321453691971949}]
1650989781.193 22200-22200/com.example.indiatalks I/InputTransport: Create ARC handle: 0x7d16279460
1650989781.263 22200-22231/com.example.indiatalks V/FA: Activity resumed, time: 629575044
1650989781.437 22200-22231/com.example.indiatalks V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 264
1650989781.439 22200-22231/com.example.indiatalks V/FA: Activity paused, time: 629575308
1650989781.678 22200-22779/com.example.indiatalks D/libMEOW: applied 1 plugins for [com.example.indiatalks]:
1650989781.678 22200-22779/com.example.indiatalks D/libMEOW:   plugin 1: [libMEOW_gift.so]:
1650989781.687 22200-22200/com.example.indiatalks V/FA: onActivityCreated
1650989781.777 22200-22225/com.example.indiatalks I/mple.indiatalk: Waiting for a blocking GC ProfileSaver
1650989781.830 22200-22231/com.example.indiatalks D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=9033321453691971949,
    public class MainActivity extends AppCompatActivity {
      private ImageButton AddNewPostButton, ChatListButton;
      private FirebaseUser currentUser;
      private FirebaseAuth mAuth;
      private DatabaseReference RootRef, PostsRef;
      private ProgressDialog loadingBar;
      public ImageButton selectPostButton;
      private Button UpdatePostButton, WritePost;
      private EditText PostDescription;
      private static final int GalleryPick = 100;
      private Uri ImageUri;
      private String checker = "";
      private String Description;
      private StorageReference PostsReference;
      private DatabaseReference UsersRef;
      private String saveCurrentDate, saveCurrentTime, postRandomName, downloadurl, currentUserid, userName;
      private Toolbar mToolbar;
      private CircleImageView navProfileImage;
      private TextView navUserName;
      private ActionBarDrawerToggle actionBarDrawerToggle;
      private ViewPager myNewsFeedViewpager;
      private NavigationView navigationView;
      private DrawerLayout drawerLayout;
      private BottomNavigationView BottomNavMenu;
      private RecyclerView postsLists;
      private RecyclerView.LayoutManager newsFeedsLinearlayoutManager;
      private PostsAdapter postsAdapter;
      private final List < Posts > postsArraylist = new ArrayList < > ();
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);
        mAuth = FirebaseAuth.getInstance();
        currentUser = mAuth.getCurrentUser();
        RootRef = FirebaseDatabase.getInstance().getReference().child("Users");






        PostsReference = FirebaseStorage.getInstance().getReference();
        UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
        PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts");
        loadingBar = new ProgressDialog(this);






        mToolbar = (Toolbar) findViewById(R.id.explore_toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setTitle("Boww Talks");




        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        if (currentUser == null) {
          SendUserToLoginActivity();

        } else {
          updateUserStatus("online");


          VerifyUserExistence();


        }







        IntializeControllers();


        drawerLayout = (DrawerLayout) findViewById(R.id.drawyer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.drawer_open, R.string.drawer_close);
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        navigationView = (NavigationView) findViewById(R.id.navigation_view);
        View navView = navigationView.inflateHeaderView(R.layout.navigation_header);
        navProfileImage = (CircleImageView) navView.findViewById(R.id.nav_profile_image);
        navUserName = (TextView) navView.findViewById(R.id.nav_profile_name);


        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(@NonNull MenuItem Item) {

            NavMenuSelector(Item);



            return false;
          }
        });





        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {


            if (menuItem.getItemId() == R.id.ic_home)

            {
              return true;

            }


            if (menuItem.getItemId() == R.id.ic_search)

            {
              Intent FindFriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(FindFriendsIntent);
              return true;

            }



            if (menuItem.getItemId() == R.id.ic_addpost)

            {
              Intent MyaddPostIntent = new Intent(MainActivity.this, addPostActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyaddPostIntent);
              return true;

            }



            if (menuItem.getItemId() == R.id.ic_alert)

            {
              Intent NotificationIntent = new Intent(MainActivity.this, NotificationActivity.class);
              overridePendingTransition(0, 0);
              startActivity(NotificationIntent);
              return true;

            }

            if (menuItem.getItemId() == R.id.ic_profile)

            {
              Intent MyProfileIntent = new Intent(MainActivity.this, settingsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyProfileIntent);
              return true;
            }





            return false;
          }



        });


        BottomNavMenu.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
          @Override
          public void onNavigationItemReselected(@NonNull MenuItem menuItem) {




            if (menuItem.getItemId() == R.id.ic_home)

            {
              Intent MyMainIntent = new Intent(MainActivity.this, MainActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyMainIntent);
            }


            if (menuItem.getItemId() == R.id.ic_search)

            {
              Intent FindFriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(FindFriendsIntent);
            }



            if (menuItem.getItemId() == R.id.ic_addpost)

            {
              Intent addPostIntent = new Intent(MainActivity.this, addPostActivity.class);
              overridePendingTransition(0, 0);
              startActivity(addPostIntent);
            }



            if (menuItem.getItemId() == R.id.ic_alert)

            {

            }






          }
        });






        ChatListButton = (ImageButton) findViewById(R.id.chat_list_button);


        ChatListButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            Intent Intent = new Intent(MainActivity.this, ChatListActivity.class);
            startActivity(Intent);
          }
        });



      }



    
      @Override
      protected void onRestart() {

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);

        super.onRestart();
      }

      private void NavMenuSelector(MenuItem Item) {
        switch (Item.getItemId()) {
          case R.id.BirthDays:
            Toast.makeText(this, "Birthdays selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.shortClips:
            Toast.makeText(this, "Short Clips selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.short_Films:
            Toast.makeText(this, "ShortFilms selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.marketing:
            Toast.makeText(this, "Marketing selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.Find_Friends_option:
            Toast.makeText(this, "Find Friends selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.my_contacts:
            Toast.makeText(this, "My Friends selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.privacy_Settings_option:
            Toast.makeText(this, "Privacy Settings selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.main_Log_Out_option:
            mAuth.signOut();


            SendUserToLoginActivity();
            break;



        }
      }


      private void IntializeControllers() {
        postsAdapter = new PostsAdapter(postsArraylist);
        postsLists = (RecyclerView) findViewById(R.id.news_feeds);
        postsLists.setHasFixedSize(true);

        newsFeedsLinearlayoutManager = new LinearLayoutManager(getApplicationContext(), RecyclerView.VERTICAL, false);
        postsLists.setLayoutManager(newsFeedsLinearlayoutManager);
        postsLists.setAdapter(postsAdapter);

      }











      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
          return true;
        }
        return super.onOptionsItemSelected(item);
      }






      @Override
      protected void onStop() {
        super.onStop();
        if (currentUser != null) {
          updateUserStatus("offline");

        }
      }

      private void updateNewsFeeds() {
        PostsRef.addChildEventListener(new ChildEventListener() {
          @Override
          public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Posts posts = dataSnapshot.getValue(Posts.class);

            postsArraylist.add(posts);

            postsAdapter.notifyDataSetChanged();
            postsAdapter.notifyDataSetChanged();
            newsFeedsLinearlayoutManager.scrollToPosition(postsArraylist.size() - 1);


          }

          @Override
          public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            postsAdapter.notifyDataSetChanged();





          }

          @Override
          public void onChildRemoved(DataSnapshot dataSnapshot) {

          }

          @Override
          public void onChildMoved(DataSnapshot dataSnapshot, String s) {
            newsFeedsLinearlayoutManager.scrollToPosition(postsArraylist.size() - 1);

          }

          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }





      private void updateNavMenu() {

        currentUserid = currentUser.getUid();

        UsersRef.child(currentUserid).addValueEventListener(new ValueEventListener() {
          @Override

          public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("profileImage") && (dataSnapshot.hasChild("FullName"))))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              String retrieveProfileImage = dataSnapshot.child("profileImage").getValue().toString();


              navUserName.setText(retrieveUserName);


              Picasso.get().load(retrieveProfileImage).placeholder(R.drawable.profilepic).into(navProfileImage);


            } else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("FullName")))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();

              navUserName.setText(retrieveUserName);
            } else {
              navUserName.setVisibility(View.INVISIBLE);
              Toast.makeText(MainActivity.this, "Set profile NAVIGATION", Toast.LENGTH_SHORT).show();
            }
          }


          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }



      private void VerifyUserExistence() {


        currentUserid = currentUser.getUid();

        RootRef.child(currentUserid).addValueEventListener(new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {

            if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("profileImage") && (dataSnapshot.hasChild("FullName"))))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              String retrieveProfileImage = dataSnapshot.child("profileImage").getValue().toString();


              navUserName.setText(retrieveUserName);
              Picasso.get().load(retrieveProfileImage).placeholder(R.drawable.profilepic).into(navProfileImage);
              updateNavMenu();
              updateNewsFeeds();




            } else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("FullName")))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              updateNavMenu();
              updateNewsFeeds();


              navUserName.setText(retrieveUserName);
            } else if ((dataSnapshot.child("name").exists())) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              navUserName.setText(retrieveUserName);


              updateNavMenu();
              updateNewsFeeds();

            } else {
              SendUserTosettingsActivity();
              Toast.makeText(MainActivity.this, "Update your profile for settings!!!!!", Toast.LENGTH_SHORT).show();

            }
          }

          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }



      private void updateUserStatus(String state) {
        String saveCurrentTime, saveCurrentDate;

        Calendar calendar = Calendar.getInstance();

        SimpleDateFormat currentDate = new SimpleDateFormat("MMM dd, yyyy");
        saveCurrentDate = currentDate.format(calendar.getTime());

        SimpleDateFormat currentTime = new SimpleDateFormat("hh:mm a");
        saveCurrentTime = currentTime.format(calendar.getTime());

        HashMap < String, Object > onlineStateMap = new HashMap < > ();
        onlineStateMap.put("time", saveCurrentTime);
        onlineStateMap.put("date", saveCurrentDate);
        onlineStateMap.put("state", state);


        currentUserid = currentUser.getUid();

        RootRef.child(currentUserid).child("userOnlineState")
          .updateChildren(onlineStateMap);

      }


      private void SendUserToLoginActivity() {
        Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
        loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(loginIntent);
        finish();
      }

      private void SendUserTosettingsActivity() {
        Intent settingsIntent = new Intent(MainActivity.this, settingsActivity.class);
        startActivity(settingsIntent);
      }

      private void SendUserToFIndFriendsActivity() {
        Intent findfriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
        startActivity(findfriendsIntent);
      }


      private void SendUserToMyProfileActivity() {
        Intent MyProfileIntent = new Intent(MainActivity.this, ProfileActivity.class);
        startActivity(MyProfileIntent);
      }



    }

    public class emailloginActivity extends AppCompatActivity

    {
        private EditText UserEmail,UserPassword;
        private TextView ForgotPasswordLink;
        private Button LoginButton ,NeedNewAccount;
        private FirebaseAuth mAuth;
        private ProgressDialog loadingBar;
        private DatabaseReference UsersRef;
        private FirebaseUser currentUser;


        public emailloginActivity() {
        }


        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_emaillogin);

            mAuth = FirebaseAuth.getInstance();
            UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
            currentUser = mAuth.getCurrentUser();
            LoginButton = (Button) findViewById(R.id.login_button);
            LoginButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AllowUserToLogin();
                }
            });



            InitializeFields();

            NeedNewAccount.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    SendUserToRegisterActivity();
                }
            });


        }




        @Override
        protected void onPause() {
            if (loadingBar != null) {
                loadingBar.dismiss();
            }
            super.onPause();
        }









        private void AllowUserToLogin()
        {
            String email = UserEmail.getText().toString();
            String password = UserPassword.getText().toString();

            if (TextUtils.isEmpty(email))
            {
                Toast.makeText(this, "Please Enter Email", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(password))
            {
                Toast.makeText(this, "Please Enter Password", Toast.LENGTH_SHORT).show();
            }

            else
                {
                    loadingBar.setTitle("Sign in");
                    loadingBar.setMessage("Please wait........");
                    loadingBar.setCanceledOnTouchOutside(true);
                    loadingBar.show();
                }
            {
                mAuth.signInWithEmailAndPassword(email, password)
                        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task)
                            {
                                if(task.isSuccessful())
                                {
                                    String currentUserId = mAuth.getCurrentUser().getUid();

                                    String deviceToken = FirebaseInstanceId.getInstance().getToken();

                                    UsersRef.child(currentUserId).child("device_token")
                                            .setValue(deviceToken)
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task)
                                                {
                                                    if (task.isSuccessful())
                                                    {
                                                        VerifyUserExistence();
                                                        Toast.makeText(emailloginActivity.this, "Welcome!!!", Toast.LENGTH_SHORT).show();
                                                        loadingBar.dismiss();
                                                    }
                                                }
                                            });



                                }
                                else
                                {
                                    String message = task.getException().toString();
                                    Toast.makeText(emailloginActivity.this, "Roasted!!!: Check the Email Id and Password", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                }

                            }
                        });
            }
        }

        private void InitializeFields()
        {
            UserEmail = (EditText) findViewById(R.id.login_email);
            UserPassword = (EditText) findViewById(R.id.login_password);
            NeedNewAccount = (Button) findViewById(R.id.Need_new_Account_button);
            LoginButton = (Button) findViewById(R.id.login_button);
            ForgotPasswordLink = (TextView) findViewById(R.id.Forgot_password);
            loadingBar = new ProgressDialog(this);



        }

        private void VerifyUserExistence ()
        {



            String userName = mAuth.getCurrentUser().getUid();

            UsersRef.child(userName).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {





                    if ((dataSnapshot.exists())&& (dataSnapshot.hasChild("name"))) {



                        SendUserToMain();
                        loadingBar.dismiss();
                        finish();

                    }
                    else
                    {
                        SendUserTosettingsActivity();

                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


        }


        private void SendUserTosettingsActivity()
        {


            Intent mainIntent = new Intent(emailloginActivity.this , settingsActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(mainIntent);
            finish();

        }


   
        private void SendUserToMain() {
            String userName = mAuth.getCurrentUser().getUid();
            Intent MainIntent = new Intent(emailloginActivity.this, MainActivity.class);
            MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            MainIntent.putExtra("mUserID" , userName );
            finish();
            startActivity(MainIntent);

        }

private void SendUserToRegisterActivity()
        {
            Intent RegisterIntent = new Intent(emailloginActivity.this, RegisterActivity.class);
            startActivity(RegisterIntent);
        }
    }

Email login activity allows user to log in to his account. here , after the user is logged in , he will be sent to main activity using the main activity intent. here as soon as the user is logged in to the account , he is sent to main activity , and the main activity is restating continously . the screen recording video is uploaded in the link mentioned "https://drive.google.com/file/d/1QRy2J1YkMRJdbjgMIIl-T58DsGnamtGX/view?usp=sharing"

here is the "LOGCAT"

1650989781.030 22200-22200/com.example.indiatalks V/FA: onActivityCreated
1650989781.184 22200-22231/com.example.indiatalks D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=9033321453691971948, firebase_screen_class(_sc)=MainActivity, firebase_screen_id(_si)=9033321453691971949}]
1650989781.193 22200-22200/com.example.indiatalks I/InputTransport: Create ARC handle: 0x7d16279460
1650989781.263 22200-22231/com.example.indiatalks V/FA: Activity resumed, time: 629575044
1650989781.437 22200-22231/com.example.indiatalks V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 264
1650989781.439 22200-22231/com.example.indiatalks V/FA: Activity paused, time: 629575308
1650989781.678 22200-22779/com.example.indiatalks D/libMEOW: applied 1 plugins for [com.example.indiatalks]:
1650989781.678 22200-22779/com.example.indiatalks D/libMEOW:   plugin 1: [libMEOW_gift.so]:
1650989781.687 22200-22200/com.example.indiatalks V/FA: onActivityCreated
1650989781.777 22200-22225/com.example.indiatalks I/mple.indiatalk: Waiting for a blocking GC ProfileSaver
1650989781.830 22200-22231/com.example.indiatalks D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_previous_class(_pc)=MainActivity, firebase_previous_id(_pi)=9033321453691971949,
    public class MainActivity extends AppCompatActivity {
      private ImageButton AddNewPostButton, ChatListButton;
      private FirebaseUser currentUser;
      private FirebaseAuth mAuth;
      private DatabaseReference RootRef, PostsRef;
      private ProgressDialog loadingBar;
      public ImageButton selectPostButton;
      private Button UpdatePostButton, WritePost;
      private EditText PostDescription;
      private static final int GalleryPick = 100;
      private Uri ImageUri;
      private String checker = "";
      private String Description;
      private StorageReference PostsReference;
      private DatabaseReference UsersRef;
      private String saveCurrentDate, saveCurrentTime, postRandomName, downloadurl, currentUserid, userName;
      private Toolbar mToolbar;
      private CircleImageView navProfileImage;
      private TextView navUserName;
      private ActionBarDrawerToggle actionBarDrawerToggle;
      private ViewPager myNewsFeedViewpager;
      private NavigationView navigationView;
      private DrawerLayout drawerLayout;
      private BottomNavigationView BottomNavMenu;
      private RecyclerView postsLists;
      private RecyclerView.LayoutManager newsFeedsLinearlayoutManager;
      private PostsAdapter postsAdapter;
      private final List < Posts > postsArraylist = new ArrayList < > ();
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);
        mAuth = FirebaseAuth.getInstance();
        currentUser = mAuth.getCurrentUser();
        RootRef = FirebaseDatabase.getInstance().getReference().child("Users");






        PostsReference = FirebaseStorage.getInstance().getReference();
        UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
        PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts");
        loadingBar = new ProgressDialog(this);






        mToolbar = (Toolbar) findViewById(R.id.explore_toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setTitle("Boww Talks");




        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        if (currentUser == null) {
          SendUserToLoginActivity();

        } else {
          updateUserStatus("online");


          VerifyUserExistence();


        }







        IntializeControllers();


        drawerLayout = (DrawerLayout) findViewById(R.id.drawyer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.drawer_open, R.string.drawer_close);
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        navigationView = (NavigationView) findViewById(R.id.navigation_view);
        View navView = navigationView.inflateHeaderView(R.layout.navigation_header);
        navProfileImage = (CircleImageView) navView.findViewById(R.id.nav_profile_image);
        navUserName = (TextView) navView.findViewById(R.id.nav_profile_name);


        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(@NonNull MenuItem Item) {

            NavMenuSelector(Item);



            return false;
          }
        });





        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {


            if (menuItem.getItemId() == R.id.ic_home)

            {
              return true;

            }


            if (menuItem.getItemId() == R.id.ic_search)

            {
              Intent FindFriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(FindFriendsIntent);
              return true;

            }



            if (menuItem.getItemId() == R.id.ic_addpost)

            {
              Intent MyaddPostIntent = new Intent(MainActivity.this, addPostActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyaddPostIntent);
              return true;

            }



            if (menuItem.getItemId() == R.id.ic_alert)

            {
              Intent NotificationIntent = new Intent(MainActivity.this, NotificationActivity.class);
              overridePendingTransition(0, 0);
              startActivity(NotificationIntent);
              return true;

            }

            if (menuItem.getItemId() == R.id.ic_profile)

            {
              Intent MyProfileIntent = new Intent(MainActivity.this, settingsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyProfileIntent);
              return true;
            }





            return false;
          }



        });


        BottomNavMenu.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
          @Override
          public void onNavigationItemReselected(@NonNull MenuItem menuItem) {




            if (menuItem.getItemId() == R.id.ic_home)

            {
              Intent MyMainIntent = new Intent(MainActivity.this, MainActivity.class);
              overridePendingTransition(0, 0);
              startActivity(MyMainIntent);
            }


            if (menuItem.getItemId() == R.id.ic_search)

            {
              Intent FindFriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
              overridePendingTransition(0, 0);
              startActivity(FindFriendsIntent);
            }



            if (menuItem.getItemId() == R.id.ic_addpost)

            {
              Intent addPostIntent = new Intent(MainActivity.this, addPostActivity.class);
              overridePendingTransition(0, 0);
              startActivity(addPostIntent);
            }



            if (menuItem.getItemId() == R.id.ic_alert)

            {

            }






          }
        });






        ChatListButton = (ImageButton) findViewById(R.id.chat_list_button);


        ChatListButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            Intent Intent = new Intent(MainActivity.this, ChatListActivity.class);
            startActivity(Intent);
          }
        });



      }



    
      @Override
      protected void onRestart() {

        BottomNavMenu = (BottomNavigationView) findViewById(R.id.bottom_nav_viewBar);
        BottomNavMenu.setSelectedItemId(R.id.ic_home);

        super.onRestart();
      }

      private void NavMenuSelector(MenuItem Item) {
        switch (Item.getItemId()) {
          case R.id.BirthDays:
            Toast.makeText(this, "Birthdays selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.shortClips:
            Toast.makeText(this, "Short Clips selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.short_Films:
            Toast.makeText(this, "ShortFilms selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.marketing:
            Toast.makeText(this, "Marketing selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.Find_Friends_option:
            Toast.makeText(this, "Find Friends selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.my_contacts:
            Toast.makeText(this, "My Friends selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.privacy_Settings_option:
            Toast.makeText(this, "Privacy Settings selected", Toast.LENGTH_SHORT).show();
            break;




          case R.id.main_Log_Out_option:
            mAuth.signOut();


            SendUserToLoginActivity();
            break;



        }
      }


      private void IntializeControllers() {
        postsAdapter = new PostsAdapter(postsArraylist);
        postsLists = (RecyclerView) findViewById(R.id.news_feeds);
        postsLists.setHasFixedSize(true);

        newsFeedsLinearlayoutManager = new LinearLayoutManager(getApplicationContext(), RecyclerView.VERTICAL, false);
        postsLists.setLayoutManager(newsFeedsLinearlayoutManager);
        postsLists.setAdapter(postsAdapter);

      }











      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
          return true;
        }
        return super.onOptionsItemSelected(item);
      }






      @Override
      protected void onStop() {
        super.onStop();
        if (currentUser != null) {
          updateUserStatus("offline");

        }
      }

      private void updateNewsFeeds() {
        PostsRef.addChildEventListener(new ChildEventListener() {
          @Override
          public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Posts posts = dataSnapshot.getValue(Posts.class);

            postsArraylist.add(posts);

            postsAdapter.notifyDataSetChanged();
            postsAdapter.notifyDataSetChanged();
            newsFeedsLinearlayoutManager.scrollToPosition(postsArraylist.size() - 1);


          }

          @Override
          public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            postsAdapter.notifyDataSetChanged();





          }

          @Override
          public void onChildRemoved(DataSnapshot dataSnapshot) {

          }

          @Override
          public void onChildMoved(DataSnapshot dataSnapshot, String s) {
            newsFeedsLinearlayoutManager.scrollToPosition(postsArraylist.size() - 1);

          }

          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }





      private void updateNavMenu() {

        currentUserid = currentUser.getUid();

        UsersRef.child(currentUserid).addValueEventListener(new ValueEventListener() {
          @Override

          public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("profileImage") && (dataSnapshot.hasChild("FullName"))))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              String retrieveProfileImage = dataSnapshot.child("profileImage").getValue().toString();


              navUserName.setText(retrieveUserName);


              Picasso.get().load(retrieveProfileImage).placeholder(R.drawable.profilepic).into(navProfileImage);


            } else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("FullName")))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();

              navUserName.setText(retrieveUserName);
            } else {
              navUserName.setVisibility(View.INVISIBLE);
              Toast.makeText(MainActivity.this, "Set profile NAVIGATION", Toast.LENGTH_SHORT).show();
            }
          }


          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }



      private void VerifyUserExistence() {


        currentUserid = currentUser.getUid();

        RootRef.child(currentUserid).addValueEventListener(new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {

            if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("profileImage") && (dataSnapshot.hasChild("FullName"))))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              String retrieveProfileImage = dataSnapshot.child("profileImage").getValue().toString();


              navUserName.setText(retrieveUserName);
              Picasso.get().load(retrieveProfileImage).placeholder(R.drawable.profilepic).into(navProfileImage);
              updateNavMenu();
              updateNewsFeeds();




            } else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild("FullName")))) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              updateNavMenu();
              updateNewsFeeds();


              navUserName.setText(retrieveUserName);
            } else if ((dataSnapshot.child("name").exists())) {
              String retrieveUserName = dataSnapshot.child("name").getValue().toString();
              navUserName.setText(retrieveUserName);


              updateNavMenu();
              updateNewsFeeds();

            } else {
              SendUserTosettingsActivity();
              Toast.makeText(MainActivity.this, "Update your profile for settings!!!!!", Toast.LENGTH_SHORT).show();

            }
          }

          @Override
          public void onCancelled(DatabaseError databaseError) {

          }
        });


      }



      private void updateUserStatus(String state) {
        String saveCurrentTime, saveCurrentDate;

        Calendar calendar = Calendar.getInstance();

        SimpleDateFormat currentDate = new SimpleDateFormat("MMM dd, yyyy");
        saveCurrentDate = currentDate.format(calendar.getTime());

        SimpleDateFormat currentTime = new SimpleDateFormat("hh:mm a");
        saveCurrentTime = currentTime.format(calendar.getTime());

        HashMap < String, Object > onlineStateMap = new HashMap < > ();
        onlineStateMap.put("time", saveCurrentTime);
        onlineStateMap.put("date", saveCurrentDate);
        onlineStateMap.put("state", state);


        currentUserid = currentUser.getUid();

        RootRef.child(currentUserid).child("userOnlineState")
          .updateChildren(onlineStateMap);

      }


      private void SendUserToLoginActivity() {
        Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
        loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(loginIntent);
        finish();
      }

      private void SendUserTosettingsActivity() {
        Intent settingsIntent = new Intent(MainActivity.this, settingsActivity.class);
        startActivity(settingsIntent);
      }

      private void SendUserToFIndFriendsActivity() {
        Intent findfriendsIntent = new Intent(MainActivity.this, FindFriendsActivity.class);
        startActivity(findfriendsIntent);
      }


      private void SendUserToMyProfileActivity() {
        Intent MyProfileIntent = new Intent(MainActivity.this, ProfileActivity.class);
        startActivity(MyProfileIntent);
      }



    }

    public class emailloginActivity extends AppCompatActivity

    {
        private EditText UserEmail,UserPassword;
        private TextView ForgotPasswordLink;
        private Button LoginButton ,NeedNewAccount;
        private FirebaseAuth mAuth;
        private ProgressDialog loadingBar;
        private DatabaseReference UsersRef;
        private FirebaseUser currentUser;


        public emailloginActivity() {
        }


        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_emaillogin);

            mAuth = FirebaseAuth.getInstance();
            UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
            currentUser = mAuth.getCurrentUser();
            LoginButton = (Button) findViewById(R.id.login_button);
            LoginButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AllowUserToLogin();
                }
            });



            InitializeFields();

            NeedNewAccount.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    SendUserToRegisterActivity();
                }
            });


        }




        @Override
        protected void onPause() {
            if (loadingBar != null) {
                loadingBar.dismiss();
            }
            super.onPause();
        }









        private void AllowUserToLogin()
        {
            String email = UserEmail.getText().toString();
            String password = UserPassword.getText().toString();

            if (TextUtils.isEmpty(email))
            {
                Toast.makeText(this, "Please Enter Email", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(password))
            {
                Toast.makeText(this, "Please Enter Password", Toast.LENGTH_SHORT).show();
            }

            else
                {
                    loadingBar.setTitle("Sign in");
                    loadingBar.setMessage("Please wait........");
                    loadingBar.setCanceledOnTouchOutside(true);
                    loadingBar.show();
                }
            {
                mAuth.signInWithEmailAndPassword(email, password)
                        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task)
                            {
                                if(task.isSuccessful())
                                {
                                    String currentUserId = mAuth.getCurrentUser().getUid();

                                    String deviceToken = FirebaseInstanceId.getInstance().getToken();

                                    UsersRef.child(currentUserId).child("device_token")
                                            .setValue(deviceToken)
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task)
                                                {
                                                    if (task.isSuccessful())
                                                    {
                                                        VerifyUserExistence();
                                                        Toast.makeText(emailloginActivity.this, "Welcome!!!", Toast.LENGTH_SHORT).show();
                                                        loadingBar.dismiss();
                                                    }
                                                }
                                            });



                                }
                                else
                                {
                                    String message = task.getException().toString();
                                    Toast.makeText(emailloginActivity.this, "Roasted!!!: Check the Email Id and Password", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                }

                            }
                        });
            }
        }

        private void InitializeFields()
        {
            UserEmail = (EditText) findViewById(R.id.login_email);
            UserPassword = (EditText) findViewById(R.id.login_password);
            NeedNewAccount = (Button) findViewById(R.id.Need_new_Account_button);
            LoginButton = (Button) findViewById(R.id.login_button);
            ForgotPasswordLink = (TextView) findViewById(R.id.Forgot_password);
            loadingBar = new ProgressDialog(this);



        }

        private void VerifyUserExistence ()
        {



            String userName = mAuth.getCurrentUser().getUid();

            UsersRef.child(userName).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {





                    if ((dataSnapshot.exists())&& (dataSnapshot.hasChild("name"))) {



                        SendUserToMain();
                        loadingBar.dismiss();
                        finish();

                    }
                    else
                    {
                        SendUserTosettingsActivity();

                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


        }


        private void SendUserTosettingsActivity()
        {


            Intent mainIntent = new Intent(emailloginActivity.this , settingsActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(mainIntent);
            finish();

        }


   
        private void SendUserToMain() {
            String userName = mAuth.getCurrentUser().getUid();
            Intent MainIntent = new Intent(emailloginActivity.this, MainActivity.class);
            MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            MainIntent.putExtra("mUserID" , userName );
            finish();
            startActivity(MainIntent);

        }

private void SendUserToRegisterActivity()
        {
            Intent RegisterIntent = new Intent(emailloginActivity.this, RegisterActivity.class);
            startActivity(RegisterIntent);
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妄想挽回 2025-01-31 04:00:12

错误是您在调用 startActivity(mainintent); 之前称为finish();。在定义变量时,使用CAMELCASE Interage of Capital Case。
如下

// changed from MainIntent to mIntent.
private void SendUserToMain() {
        String userName = mAuth.getCurrentUser().getUid();
        Intent mIntent = new Intent(emailloginActivity.this, MainActivity.class);
        mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        mIntent.putExtra("mUserID" , userName );
        startActivity(mIntent);
        finish();
    }

Mistake is here that you called finish(); before calling startActivity(MainIntent);. Use camelCaseinstade of Capital case in defining variable.
Make changes in your emailloginActivity as below

// changed from MainIntent to mIntent.
private void SendUserToMain() {
        String userName = mAuth.getCurrentUser().getUid();
        Intent mIntent = new Intent(emailloginActivity.this, MainActivity.class);
        mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        mIntent.putExtra("mUserID" , userName );
        startActivity(mIntent);
        finish();
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文