Getting comeout from the app after clicking on login button

Viewed 60

I'm Doing some backend work for my app and I'm getting comeout from the app after clicking on login button.

MainActivity.java

My Default Activity.

public class MainActivity extends AppCompatActivity {

private Button joinNowButton, loginButton;

private ProgressDialog loadingBar;

private DataSnapshot dataSnapshot;

// private String parentDbName = "Users";

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

    joinNowButton = (Button) findViewById(R.id.main_join_now_btn);
    loginButton = (Button) findViewById(R.id.main_login_btn);
    loadingBar = new ProgressDialog(this);

    Paper.init(this);


    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this,LoginActivity.class);
            startActivity(intent);
        }
    });

    joinNowButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this,RegisterActivity.class);
            startActivity(intent);
        }
    });

    String UserPhoneKey = Paper.book().read(Prevalent.UserPhoneKey);
    String UserPasswordKey = Paper.book().read(Prevalent.UserPasswordKey);

    if (UserPhoneKey!="" && UserPasswordKey!="")
    {
        if (!TextUtils.isEmpty(UserPhoneKey) && !TextUtils.isEmpty(UserPasswordKey))
        {
            AllowAccess(UserPhoneKey,UserPasswordKey);

            loadingBar.setTitle("Already Logged in");
            loadingBar.setMessage("Please wait...");
            loadingBar.setCanceledOnTouchOutside(false);
            loadingBar.show();

        }
    }
}

private void AllowAccess(final String phone, final String password) {


    final DatabaseReference RootRef;
    RootRef = FirebaseDatabase.getInstance().getReference();

    RootRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (dataSnapshot.child("Users").child(phone).exists())
            {
                Users usersData = dataSnapshot.child("Users").child(phone).getValue(Users.class);

                if (usersData.getPhone().equals(phone))
                {
                    if (usersData.getPassword().equals(password))
                    {
                        Toast.makeText(MainActivity.this, "please wait, logging in...", Toast.LENGTH_SHORT).show();
                        loadingBar.dismiss();

                        Intent intent = new Intent(MainActivity.this,HomeActivity.class);
                        startActivity(intent);
                    }
                    else
                    {
                        loadingBar.dismiss();
                        Toast.makeText(MainActivity.this, "Incorrect Password.", Toast.LENGTH_SHORT).show();
                    }
                }
            }
            else
            {
                Toast.makeText(MainActivity.this, "Account with this" + phone+ "number do not exists", Toast.LENGTH_SHORT).show();
                loadingBar.dismiss();

            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

}}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout         
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@drawable/welcome1">


<ImageView
    android:id="@+id/app_logo"
    android:layout_width="337dp"
    android:layout_height="114dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="60dp"
    android:src="@drawable/applogo" />

<TextView
    android:id="@+id/app_slogan"
    android:layout_width="277dp"
    android:layout_height="53dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="185dp"
    android:layout_marginEnd="68dp"
    android:text="Selling only the best things online..."
    android:textAlignment="center"
    android:textColor="@color/black"
    android:textSize="15sp"
    android:textStyle="bold|italic" />

<Button
    android:id="@+id/main_login_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="10dp"
    android:layout_marginRight="15dp"
    android:layout_marginBottom="10dp"
    android:background="@drawable/buttons"
    android:padding="10dp"
    android:shadowColor="@color/teal_200"
    android:text="Already have an Account ? Login"
    android:textAllCaps="false"
    android:textSize="18sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/main_join_now_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/main_login_btn"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginBottom="5dp"
    android:background="@drawable/input_design"
    android:padding="10dp"
    android:text="Join Now"
    android:textAllCaps="false"
    android:textSize="18sp"
    android:textStyle="bold" />

LoginActivity.java

After clicking the button, I want the loginActivity to be opened from the main activity.

public class LoginActivity extends AppCompatActivity {

private EditText InputPhoneNumber,InputPassword;
private Button LoginButton;
private ProgressDialog loadingBar;
private DataSnapshot dataSnapshot;
private TextView AdminLink,NotAdminLink;

private String parentDbName = "Users";
private CheckBox chkBoxRememberMe;

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

    LoginButton = (Button) findViewById(R.id.login_btn);
    InputPhoneNumber = (EditText) findViewById(R.id.login_phone_number_input);
    InputPassword = (EditText) findViewById(R.id.login_password_input);
    AdminLink = (TextView)findViewById(R.id.admin_panel_link);
    NotAdminLink = (TextView)findViewById(R.id.not_admin_panel_link);

    loadingBar = new ProgressDialog(this);

    chkBoxRememberMe = (CheckBox)findViewById(R.id.remember_me_chkb);
    Paper.init(this);

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

            LoginUser();

        }
    });
    AdminLink.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LoginButton.setText("Login Admin");
            AdminLink.setVisibility(View.INVISIBLE);
            NotAdminLink.setVisibility(View.VISIBLE);
            parentDbName = "Admins";
        }
    });
    NotAdminLink.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LoginButton.setText("Login");
            AdminLink.setVisibility(View.VISIBLE);
            NotAdminLink.setVisibility(View.INVISIBLE);
            parentDbName = "Users";
        }
    });
}

private void LoginUser() {
    String phone = InputPassword.getText().toString();
    String password = InputPassword.getText().toString();

    if (TextUtils.isEmpty(phone)){
        Toast.makeText(this, "please write phone number...", Toast.LENGTH_SHORT).show();
    }
    else if (TextUtils.isEmpty(password)){
        Toast.makeText(this, "please write your password...", Toast.LENGTH_SHORT).show();
    }
    else{
        loadingBar.setTitle("Login Account");
        loadingBar.setMessage("Please wait, While we are checking the credentials.");
        loadingBar.setCanceledOnTouchOutside(false);
        loadingBar.show();

        AllowAccessToAccount(phone,password);
    }
}

private void AllowAccessToAccount(final String phone, final String password) {

    if (chkBoxRememberMe.isChecked()){
        Paper.book().write(Prevalent.UserPhoneKey,phone);
        Paper.book().write(Prevalent.UserPasswordKey,password);
    }

    final DatabaseReference RootRef;
    RootRef = FirebaseDatabase.getInstance().getReference();

    RootRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (dataSnapshot.child(parentDbName).child(phone).exists())
            {
                Users usersData = dataSnapshot.child(parentDbName).child(phone).getValue(Users.class);

                if (usersData.getPhone().equals(phone))
                {
                    if (usersData.getPassword().equals(password))
                    {
                        Toast.makeText(LoginActivity.this, "logged in Successfully...", Toast.LENGTH_SHORT).show();
                        loadingBar.dismiss();

                        Intent intent = new Intent(LoginActivity.this,HomeActivity.class);
                        startActivity(intent);
                    }
                    else
                    {
                        loadingBar.dismiss();
                        Toast.makeText(LoginActivity.this, "Incorrect Password.", Toast.LENGTH_SHORT).show();
                    }
                }
            }
            else
            {
                Toast.makeText(LoginActivity.this, "Account with this" + phone+ "number do not exists", Toast.LENGTH_SHORT).show();
                loadingBar.dismiss();

            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

}}

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout         
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".LoginActivity"
android:background="@drawable/login">

<ImageView
    android:id="@+id/register"
    android:layout_width="300dp"
    android:layout_height="100dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="250dp"
    android:src="@drawable/applogo2" />

<EditText
    android:id="@+id/login_phone_number_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/register"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:background="@drawable/input_design"
    android:hint="Phone Number"
    android:inputType="number"
    android:padding="20dp"
    android:textColor="@color/white"
    android:textColorHint="@color/white"
    android:textSize="17sp"
    android:textStyle="bold" />

<EditText
    android:id="@+id/login_password_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/login_phone_number_input"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="6dp"
    android:layout_marginRight="15dp"
    android:background="@drawable/input_design"
    android:hint="Password"
    android:inputType="textPassword"
    android:padding="20dp"
    android:textColor="@color/white"
    android:textColorHint="@color/white"
    android:textSize="17sp"
    android:textStyle="bold" />

<LinearLayout
    android:id="@+id/linear_layout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_below="@id/login_password_input"
    android:layout_marginTop="5dp"
    >

    <com.rey.material.widget.CheckBox
        android:id="@+id/remember_me_chkb"
        style="@style/Material.Drawable.CheckBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="17dp"
        android:gravity="center_vertical"
        android:text="Remember me"
        android:textColor="@color/white"
        android:textSize="16sp"
        android:textStyle="bold"
        app:cbd_strokeColor="@color/white"
        tools:ignore="TouchTargetSizeCheck" />

    <TextView
        android:id="@+id/forget_password_link"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Forget Password?"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:textStyle="bold"
        android:layout_marginLeft="80dp" />

</LinearLayout>

<Button
    android:id="@+id/login_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linear_layout1"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="5dp"
    android:layout_marginRight="15dp"
    android:background="@drawable/buttons"
    android:padding="14dp"
    android:shadowColor="@color/teal_200"
    android:text="Login"
    android:textAllCaps="false"
    android:textSize="18sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/admin_panel_link"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="I'm an Admin?"
    android:layout_alignParentEnd="true"
    android:layout_below="@id/login_btn"
    android:textColor="@color/white"
    android:textSize="20sp"
    android:textStyle="bold"
    android:layout_marginEnd="23dp"
    android:layout_marginLeft="80dp" />

<TextView
    android:id="@+id/not_admin_panel_link"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="I'm not an Admin?"
    android:layout_alignParentStart="true"
    android:layout_below="@id/login_btn"
    android:textColor="@color/white"
    android:textSize="20sp"
    android:textStyle="bold"
    android:layout_marginStart="25dp"
    android:visibility="invisible"
    android:layout_marginLeft="80dp" />

AndroidMainFest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.ecom">

<application
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/min1"
    android:label="eCoM"
    android:roundIcon="@mipmap/min1"
    android:supportsRtl="true"
    android:theme="@style/Theme.ECoM"
    tools:targetApi="31">
    <activity
        android:name=".HomeActivity"
        android:exported="false" />
    <activity android:name=".RegisterActivity" />
    <activity android:name=".LoginActivity" />
    <activity android:name=".MainActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
1 Answers

You've imported the wrong CheckBox. So, change

import android.widget.CheckBox;

to

import com.rey.material.widget.CheckBox
Related