0
package com.jay.Atmos;

import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;

import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.GithubAuthCredential;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.ismaeldivita.chipnavigation.ChipNavigationBar;
import com.jay.Atmos.Fragment.HomeFragment;
import com.jay.Atmos.Fragment.NotificationFragment;
import com.jay.Atmos.Fragment.ProfileFragment;
import com.jay.Atmos.Fragment.SearchFragment;

import com.jay.Atmos.calling.BaseActivity;
import com.jay.Atmos.calling.SinchService;
import com.sinch.android.rtc.SinchError;
import com.squareup.picasso.Picasso;

import java.util.Objects;

import de.hdodenhof.circleimageview.CircleImageView;

public class MainActivity  extends BaseActivity implements SinchService.StartFailedListener {


    Fragment selectedFagrament = null;
    DatabaseReference RootRef;

    private ImageButton ChatButton;
    private Toolbar mToolbar;


    int prev_nav_item = 0;

    private CircleImageView navProfileImage;
    private TextView navUserName;


    private ActionBarDrawerToggle actionBarDrawerToggle;


    private NavigationView navigationView;


    private DrawerLayout drawerLayout;

    Fragment fragment;

    private FirebaseUser currentUser;
    private FirebaseAuth mAuth;

    ChipNavigationBar BottomNavBar;
    FragmentManager fragmentManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAuth = FirebaseAuth.getInstance();
        currentUser = mAuth.getCurrentUser();
        RootRef = FirebaseDatabase.getInstance().getReference().child("Users");
        BottomNavBar = findViewById(R.id.bottom_nav_bar);




//
//        RelativeLayout bganim = findViewById(R.id.bganim);
//
////
//        TransitionDrawable trans = (TransitionDrawable) bganim.getBackground();
//        trans.startTransition(3000);
////        trans.reverseTransition(500);
//        trans.mutate();
//        trans.canApplyTheme();






        ChatButton = findViewById(R.id.ChatBtn);

        initializechatbutton();



        mToolbar = (Toolbar) findViewById(R.id.explore_toolbar);
        setSupportActionBar(mToolbar);
        Objects.requireNonNull(getSupportActionBar()).setTitle("Vish Me");

//        getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
//        getSupportActionBar().setDisplayShowCustomEnabled(true);
//        getSupportActionBar().setCustomView(R.layout.app_bar_layout);
//        getSupportActionBar().setDisplayShowCustomEnabled(true);
//        View view =getSupportActionBar().getCustomView();
//




        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.setHomeAsUpIndicator(R.drawable.ic_arrowoption);


        actionBarDrawerToggle.syncState();
        actionBarDrawerToggle.setDrawerSlideAnimationEnabled(true);
        actionBarDrawerToggle.setDrawerIndicatorEnabled(true);


//

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

        } else
        {



            VerifyUserExistence();
            Bundle intent = getIntent().getExtras();
        if(intent != null) {

            String publisher = intent.getString("publisherid");

            SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
            editor.putString("profileid", publisher);
            editor.apply();

            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new ProfileFragment()).commit();
        }


        }


//





            drawerLayout = (DrawerLayout) findViewById(R.id.drawyer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                MainActivity.this, drawerLayout, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawerLayout.setDrawerListener(toggle);
        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);



//       selectedFagrament = new HomeFragment();
                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                            new HomeFragment()).addToBackStack("home").commit();
                    ChatButton.setVisibility(View.VISIBLE);


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

                NavMenuSelector(Item);


                return false;
            }
        });


















































        if (savedInstanceState==null)
        {
            BottomNavBar.setItemSelected(R.id.nav_home,true);
            fragmentManager = getSupportFragmentManager();
            HomeFragment homeFragment = new HomeFragment();
            fragmentManager.beginTransaction().replace(R.id.fragment_container , homeFragment).commit();
        }

        BottomNavBar.setOnItemSelectedListener(new ChipNavigationBar.OnItemSelectedListener() {
            private final String TAG = MainActivity.class.getSimpleName();

            @SuppressLint("NonConstantResourceId")
            @Override
            public void onItemSelected(int id) {

                 fragment = null;

                switch (id)
                {
                    case R.id.nav_home:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                                new HomeFragment()).addToBackStack("home").commit();
                        ChatButton.setVisibility(View.VISIBLE);

                        break;
                    case R.id.nav_search:

                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                                new SearchFragment()).addToBackStack("search").commit();

                        ChatButton.setVisibility(View.GONE);
                      //  mToolbar.setVisibility(View.GONE);
                        break;
                    case R.id.nav_add:
                        selectedFagrament = null;
                        startActivity(new Intent(MainActivity.this, PostActivity.class));


                        break;

                    case R.id.nav_heart:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                                new NotificationFragment()).addToBackStack("notify").commit();

                        ChatButton.setVisibility(View.GONE);
                        mToolbar.setVisibility(View.GONE);

                        break;
                    case R.id.nav_profile:

                        SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
                        editor.putString("profileid", currentUser.getUid());
                        editor.apply();
                        ChatButton.setVisibility(View.GONE);
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                                new ProfileFragment()).addToBackStack("profile").commit();


                        break;
                }

                if (fragment!=null)
                {
                    fragmentManager = getSupportFragmentManager();

                    fragmentManager.beginTransaction().replace(R.id.fragment_container,
                            fragment).commit();
                }

                else
                {
                    Log.e(TAG , "Error");
                }

            }
        });
















































        ChatButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

//                selectedFagrament = null;


                Intent ChatIntent = new Intent(MainActivity.this, ChatListActivity.class);
                startActivity(ChatIntent);
            }
        });

    }








    private void initializechatbutton() {
    }




            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:
                        //  Intent Intent = new Intent(MainActivity.this, ScreenShareActivity.class);
                        // startActivity(Intent);                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 SendUserToLoginActivity () {
                Intent editprofile = new Intent(MainActivity.this, AccountLoginActivity.class);
                startActivity(editprofile);
            }


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


            private void VerifyUserExistence () {


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

                        if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("username") && (dataSnapshot.hasChild("profileimage") && (dataSnapshot.hasChild("fullName"))))) {
                            String retrieveUserName = dataSnapshot.child("username").getValue().toString();
                            String retrieveProfileImage = dataSnapshot.child("profileimage").getValue().toString();


//                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
//                            new HomeFragment()).commit();


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


                            if (!getSinchServiceInterface().isStarted()) {
                                initiateSinch();
//
                            }
//
                            updateNavMenu();

                        } else if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("username") && (dataSnapshot.hasChild("fullName")))) {
                            String retrieveUserName = dataSnapshot.child("username").getValue().toString();
                            updateNavMenu();
//
//                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
//                            new HomeFragment()).commit();

//
                            if (!getSinchServiceInterface().isStarted()) {
                                initiateSinch();
//

                            }

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


                    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                            new HomeFragment()).commit();


                            updateNavMenu();

                            if (!getSinchServiceInterface().isStarted()) {
                                initiateSinch();
//

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

                        }
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });


            }

            private void updateNavMenu () {

                String currentUserid = currentUser.getUid();

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

                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("username") && (dataSnapshot.hasChild("profileimage") && (dataSnapshot.hasChild("fullName"))))) {
                            String retrieveUserName = dataSnapshot.child("username").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("username") && (dataSnapshot.hasChild("fullName")))) {
                            String retrieveUserName = dataSnapshot.child("username").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 SendUserTosettingsActivity ()
            {

                Intent editprofile = new Intent(MainActivity.this, SettingsActivity.class);
                startActivity(editprofile);
            }


            private void initiateSinch () {

                if (!getSinchServiceInterface().isStarted()) {


                    Intent serviceIntent = new Intent(MainActivity.this, SinchService.class);
                    serviceIntent.putExtra("inputExtra", currentUser.getUid());
                    ContextCompat.startForegroundService(MainActivity.this, serviceIntent);
                    getSinchServiceInterface().startClient(currentUser.getUid());

                }


            }

            @Override
            protected void onServiceConnected () {

                getSinchServiceInterface().setStartListener(this);

            }


    @Override
    public void onBackPressed() {

//        if (fragment!=null)
//        {
//            fragmentManager = getSupportFragmentManager();
//
//            fragmentManager.beginTransaction().replace(R.id.fragment_container,
//                    fragment).commit();
//        }///





        super.onBackPressed();
    }

    @Override
            public void onBindingDied (ComponentName name){

                if (!getSinchServiceInterface().isStarted()) {


                    Intent serviceIntent = new Intent(MainActivity.this, SinchService.class);
                    serviceIntent.putExtra("inputExtra", currentUser.getUid());
                    ContextCompat.startForegroundService(MainActivity.this, serviceIntent);
                    getSinchServiceInterface().startClient(currentUser.getUid());

                }

            }

            @Override
            protected void onStart () {



                super.onStart();
            }

            @Override
            protected void onPause () {


                Toast.makeText(this, "on pause", Toast.LENGTH_SHORT).show();
                super.onPause();
            }

            @Override
            protected void onResume () {

                Toast.makeText(this, "on pause", Toast.LENGTH_SHORT).show();
                super.onResume();

            }

            @Override
            protected void onRestart () {


                super.onRestart();

            }

            @Override
            public void onStartFailed (SinchError error){
                Toast.makeText(this, error.toString(), Toast.LENGTH_LONG).show();
                if (!getSinchServiceInterface().isStarted()) {


                    Intent serviceIntent = new Intent(MainActivity.this, SinchService.class);
                    serviceIntent.putExtra("inputExtra", currentUser.getUid());
                    ContextCompat.startForegroundService(MainActivity.this, serviceIntent);
                    getSinchServiceInterface().startClient(currentUser.getUid());

                }


                //////////////////////////////////////////////


            }

            @Override
            public void onStarted () {
                Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();


               // finish();
            }




}


i have a main activity with a bottom navigation menu which has a inter changing frangment. i also have a button which changes to other activity. when i try to go to other activity it gives a error displaying " FATAL EXCEPTION: main Process: com.jay.Atmos, PID: 10737 java.lang.IllegalArgumentException: No view found for id 0x7f0a0199 (com.jay.Atmos:id/fragment_container) for fragment HomeFragment{4d85ba} (187ff6c1-438d-411d-97cd-cf6946773579 id=0x7f0a0199) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3138) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246) at com.jay.Atmos.MainActivity.onStart(MainActivity.java:662) at com.jay.Atmos.ChatActivity.onStart(ChatActivity.java:961) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8231) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3872) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2336) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8653) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) "

0 Answers0