프로젝트 기간이 한 달 정도밖에 주어지지 않아 시간이 부족하였기 때문에 손봐야 할 부분들이 많다고 생각하여 수정하는 작업을 진행하였다.
<?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=".SplashActivity"
android:background="#212025">
<ImageView
android:id="@+id/project_icon"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerInParent="true"
android:src="@drawable/plant" />
<TextView
android:layout_marginTop="16dp"
android:textColor="#43B05C"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/project_icon"
android:layout_centerInParent="true"
android:text="Loding"
android:textSize="24sp"/>
</RelativeLayout>
package com.example.test000111;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
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;
public class SplashActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
firebaseAuth = FirebaseAuth.getInstance();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
checkUser();
}
},2000);
}
private void checkUser() {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if(firebaseUser == null) {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
} else {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child(firebaseUser.getUid())
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String userType = ""+snapshot.child("userType").getValue();
if (userType.equals("user")){
startActivity(new Intent(SplashActivity.this,Test1.class));
finish();
} else if (userType.equals("admin")) {
startActivity(new Intent(SplashActivity.this,Test1.class));
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
}
SplashActivity에서는 다른 기능은 필요 없고 SplashActivity에서 MainActivity에서 화면전환만 하면 되기 때문에 FirebaseAuth와 CheckUser로 사용자가 User인지 Admin인지 확인할 필요가 없다. 그래서 SplashActivity에서 딜레이를 주고 바로 MainActivity로 넘어가도록 수정하였다.
package com.example.test000111;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.appcompat.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
}
}, 2000);
}
}
<?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"
android:background="#212025"
android:padding="20dp"
tools:context=".MainActivity">
<ImageView
android:id="@+id/project_icon"
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:src="@drawable/plant" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/project_icon"
android:layout_centerInParent="true"
android:layout_marginTop="16dp"
android:text="Wlcome to app"
android:textColor="@color/white"
android:textSize="24sp"/>
<Button
android:id="@+id/login_Btn"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_above="@id/skip_Btn"
android:background="@drawable/button_bg"
android:text=" Login"
android:gravity="left"
android:textSize="18dp"
android:textColor="@color/white" />
<Button
android:id="@+id/skip_Btn"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_marginTop="10dp"
android:gravity="left"
android:layout_marginBottom="15dp"
android:textSize="15dp"
android:background="@drawable/button_bg_2"
android:text=" Continue without login"
android:textColor="@color/white" />
</RelativeLayout>
package com.example.test000111;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.example.test000111.R;
import com.example.test000111.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this,LoginActivity.class));
}
});
binding.skipBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this,Test1.class));
}
});
}
}
화분을 산 사람만 앱을 사용할 수 있도록 만들어 앱은 무료이나 화분에서 수익을 얻을 수 있도록 계획하였다. 따라서 로그인 없이도 들어갈 수 있는 버튼보다는 회원가입 버튼을 만들어 회원가입으로 넘어갈 수 있도록 수정 하였다.