diff --git a/app b/app new file mode 160000 index 0000000..10696d6 --- /dev/null +++ b/app @@ -0,0 +1 @@ +Subproject commit 10696d6f8e4664d3b7e9c8b68e905626fad00af7 diff --git a/application/.gradle/7.3.3/executionHistory/executionHistory.bin b/application/.gradle/7.3.3/executionHistory/executionHistory.bin index cda6f7f..11a6278 100644 Binary files a/application/.gradle/7.3.3/executionHistory/executionHistory.bin and b/application/.gradle/7.3.3/executionHistory/executionHistory.bin differ diff --git a/application/.gradle/7.3.3/executionHistory/executionHistory.lock b/application/.gradle/7.3.3/executionHistory/executionHistory.lock index 7da9b16..02a8315 100644 Binary files a/application/.gradle/7.3.3/executionHistory/executionHistory.lock and b/application/.gradle/7.3.3/executionHistory/executionHistory.lock differ diff --git a/application/.gradle/7.3.3/fileHashes/fileHashes.bin b/application/.gradle/7.3.3/fileHashes/fileHashes.bin index 203fee5..b811cc3 100644 Binary files a/application/.gradle/7.3.3/fileHashes/fileHashes.bin and b/application/.gradle/7.3.3/fileHashes/fileHashes.bin differ diff --git a/application/.gradle/7.3.3/fileHashes/fileHashes.lock b/application/.gradle/7.3.3/fileHashes/fileHashes.lock index 5a21eb1..fc8dfc5 100644 Binary files a/application/.gradle/7.3.3/fileHashes/fileHashes.lock and b/application/.gradle/7.3.3/fileHashes/fileHashes.lock differ diff --git a/application/.gradle/7.3.3/fileHashes/resourceHashesCache.bin b/application/.gradle/7.3.3/fileHashes/resourceHashesCache.bin index f986b57..f0ba0ac 100644 Binary files a/application/.gradle/7.3.3/fileHashes/resourceHashesCache.bin and b/application/.gradle/7.3.3/fileHashes/resourceHashesCache.bin differ diff --git a/application/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/application/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 518ae0e..3ed1418 100644 Binary files a/application/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/application/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/application/.gradle/buildOutputCleanup/outputFiles.bin b/application/.gradle/buildOutputCleanup/outputFiles.bin index 2882227..628a4a8 100644 Binary files a/application/.gradle/buildOutputCleanup/outputFiles.bin and b/application/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/application/app/src/main/AndroidManifest.xml b/application/app/src/main/AndroidManifest.xml index 842091b..a9d40de 100644 --- a/application/app/src/main/AndroidManifest.xml +++ b/application/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ package="com.example.myapplication"> + + diff --git a/src/main/java/com/example/myapplication/ui/ServiceSetting/AuthenticationInterceptor.java b/application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/AuthenticationInterceptor.java similarity index 100% rename from src/main/java/com/example/myapplication/ui/ServiceSetting/AuthenticationInterceptor.java rename to application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/AuthenticationInterceptor.java diff --git a/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceAPI.java b/application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceAPI.java similarity index 100% rename from src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceAPI.java rename to application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceAPI.java diff --git a/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceGenerator.java b/application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceGenerator.java similarity index 100% rename from src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceGenerator.java rename to application/app/src/main/java/com/example/myapplication/ui/ServiceSetting/ServiceGenerator.java diff --git a/application/app/src/main/java/com/example/myapplication/ui/join/JoinActivity.java b/application/app/src/main/java/com/example/myapplication/ui/join/JoinActivity.java index 8165d37..e75ca76 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/join/JoinActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/join/JoinActivity.java @@ -17,9 +17,9 @@ import androidx.appcompat.app.AppCompatActivity; import com.example.myapplication.R; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; import com.example.myapplication.ui.login.LoginActivity; -import com.example.myapplication.ui.mainPage.NewActivity; -import com.example.myapplication.ui.petSelect.PetSelectActivity; import retrofit2.Call; import retrofit2.Callback; @@ -29,7 +29,7 @@ public class JoinActivity extends AppCompatActivity { private JoinUserState joinUserState = new JoinUserState(); private boolean validate = false; - private ServiceAPI service = RetrofitClient.getClient().create(ServiceAPI.class); + private ServiceAPI service = ServiceGenerator.createService(ServiceAPI.class); private Dialog enterCodeDialog; private AlertDialog dialog; private int codeEntered; @@ -124,8 +124,8 @@ private void validateEmail(EmailValidationData data) { @Override public void onResponse(Call call, Response response) { JoinResponse result = response.body(); + // Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); if (result.getCode() == 200) { - // Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder = new AlertDialog.Builder(JoinActivity.this); dialog = builder.setMessage("사용할 수 있는 이메일입니다.") .setCancelable(false) @@ -137,9 +137,6 @@ public void onClick(DialogInterface dialog, int which) { .create(); dialog.show(); validate = true; - } else { - string faileResult = "사용할 수 없는 이메일입니다."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override @@ -156,16 +153,13 @@ private void sendEmail(EmailValidationData data) { @Override public void onResponse(Call call, retrofit2.Response response) { JoinResponse result = response.body(); + Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); if (result.getCode() == 200) { - Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); enterCodeDialog = new Dialog(JoinActivity.this); enterCodeDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); enterCodeDialog.setContentView(R.layout.email_check_dialog); codeReceived = result.getData(); showEmailCodeEnterDialog(); - } else { - string faileResult = "코드 전송에 실패하였습니다. 다시 시도해주세요."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override @@ -196,13 +190,10 @@ private void startJoin(JoinData data) { @Override public void onResponse(Call call, Response response) { JoinResponse result = response.body(); + Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); if (result.getCode() == 200) { - Toast.makeText(JoinActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getApplicationContext(), LoginActivity.class); startActivity(intent); - } else { - string faileResult = "회원가입에 실패하였습니다. 다시 시도해주세요."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override diff --git a/application/app/src/main/java/com/example/myapplication/ui/join/PasswordChangeActivity.java b/application/app/src/main/java/com/example/myapplication/ui/join/PasswordChangeActivity.java index 6a29445..550a08c 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/join/PasswordChangeActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/join/PasswordChangeActivity.java @@ -17,6 +17,8 @@ import androidx.appcompat.app.AppCompatActivity; import com.example.myapplication.R; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; import com.example.myapplication.ui.login.LoginActivity; import com.example.myapplication.ui.login.LoginRequest; @@ -28,7 +30,7 @@ public class PasswordChangeActivity extends AppCompatActivity { private AlertDialog dialog; private JoinUserState joinUserState = new JoinUserState(); - private ServiceAPI service = RetrofitClient.getClient().create(ServiceAPI.class); + private ServiceAPI service = ServiceGenerator.createService(ServiceAPI.class); private Dialog enterCodeDialog; private boolean isEmailValidated = false; private int codeEntered; @@ -103,22 +105,19 @@ public void onClick(View view) { }); } - // 이메일 전송 + // 회원가입 버튼 클릭시에 코드를 전송 private void sendEmail(EmailValidationData data) { service.sendEmail(data).enqueue(new Callback() { @Override public void onResponse(Call call, retrofit2.Response response) { JoinResponse result = response.body(); + Toast.makeText(PasswordChangeActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); if (result.getCode() == 200) { - Toast.makeText(PasswordChangeActivity.this, result.getMessage(), Toast.LENGTH_SHORT).show(); enterCodeDialog = new Dialog(PasswordChangeActivity.this); enterCodeDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); enterCodeDialog.setContentView(R.layout.email_check_dialog); codeReceived = result.getData(); showEmailCodeEnterDialog(); - } else { - string faileResult = "입력하신 이메일로 코드를 전송하는데 실패하였습니다. 다시 시도해주세요."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override @@ -161,9 +160,6 @@ public void onClick(DialogInterface dialog, int which) {} }) .create(); dialog.show(); - } else { - string faileResult = "이메일로 인증에 실패하였습니다. 다시 시도해주세요."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override @@ -185,9 +181,6 @@ public void onResponse(Call call, Response response) AlertDialog.Builder builder = new AlertDialog.Builder(PasswordChangeActivity.this); Intent intent = new Intent(getApplicationContext(), LoginActivity.class); startActivity(intent); - } else { - string faileResult = "비밀번호에 실패하였습니다. 다시 시도해주세요."; - Toast.makeText(JoinActivity.this, faileResult, Toast.LENGTH_SHORT).show(); } } @Override diff --git a/application/app/src/main/java/com/example/myapplication/ui/join/RetrofitClient.java b/application/app/src/main/java/com/example/myapplication/ui/join/RetrofitClient.java deleted file mode 100644 index 45da5aa..0000000 --- a/application/app/src/main/java/com/example/myapplication/ui/join/RetrofitClient.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.myapplication.ui.join; - -import retrofit2.Retrofit; -import retrofit2.converter.gson.GsonConverterFactory; - -public class RetrofitClient { - private final static String BASE_URL = "https://12b969e5-87a6-4fca-a942-178ea253fdbc.mock.pstmn.io"; - //옌 post 서버 : https://12b969e5-87a6-4fca-a942-178ea253fdbc.mock.pstmn.io - //주현 서버 : https://7919ceb2-3999-4ed8-8bcc-16baaf4e62d4.mock.pstmn.io - private static Retrofit retrofit = null; - - private RetrofitClient() { } - - public static Retrofit getClient() { - if (retrofit == null) { - retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) // 요청을 보낼 base url을 설정한다. - .addConverterFactory(GsonConverterFactory.create()) // JSON 파싱을 위한 GsonConverterFactory를 추가한다. - .build(); - } - return retrofit; - } -} diff --git a/application/app/src/main/java/com/example/myapplication/ui/join/ServiceAPI.java b/application/app/src/main/java/com/example/myapplication/ui/join/ServiceAPI.java deleted file mode 100644 index 203af2f..0000000 --- a/application/app/src/main/java/com/example/myapplication/ui/join/ServiceAPI.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.myapplication.ui.join; - -import com.example.myapplication.ui.login.LoginRequest; - -import retrofit2.http.Body; -import retrofit2.http.POST; -import retrofit2.Call; - -public interface ServiceAPI { - @POST("/enterEmailCode/join") - Call userJoin(@Body JoinData data); - - @POST("/sendEmail") - Call sendEmail(@Body EmailValidationData data); - - @POST("/validateDuplicateEmail") - Call emailValidation(@Body EmailValidationData data); - - @POST("/changePw") //정보 수정.. put으로 가능함! - Call changePw(@Body LoginRequest data); - - @POST("/enterEmailCode/changePw") - Call enterEmailCode(@Body EmailCodeData data); -} diff --git a/application/app/src/main/java/com/example/myapplication/ui/login/LoginAPI.java b/application/app/src/main/java/com/example/myapplication/ui/login/LoginAPI.java deleted file mode 100644 index 3e6f56f..0000000 --- a/application/app/src/main/java/com/example/myapplication/ui/login/LoginAPI.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.myapplication.ui.login; - -import retrofit2.Call; -import retrofit2.http.Body; -import retrofit2.http.POST; - -interface LoginAPI { - //@통신 방식("통신 API명") - @POST("/login") - Call getLoginResponse(@Body LoginRequest loginRequest); -} diff --git a/application/app/src/main/java/com/example/myapplication/ui/login/LoginActivity.java b/application/app/src/main/java/com/example/myapplication/ui/login/LoginActivity.java index 8c1539e..de830fc 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/login/LoginActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/login/LoginActivity.java @@ -16,9 +16,10 @@ import androidx.appcompat.app.AppCompatActivity; import com.example.myapplication.R; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; import com.example.myapplication.ui.join.JoinActivity; import com.example.myapplication.ui.join.PasswordChangeActivity; -import com.example.myapplication.ui.join.RetrofitClient; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; import com.example.myapplication.ui.petSelect.PetSelectActivity; import retrofit2.Call; @@ -28,12 +29,18 @@ public class LoginActivity extends AppCompatActivity { - private LoginAPI loginAPI = RetrofitClient.getClient().create(LoginAPI.class); + private String TOKEN = getToken(); // access token을 가져오는 함수를 직접 정의하셔야합니다. + private ServiceAPI service = ServiceGenerator.createService(ServiceAPI.class, TOKEN); + private TextView pw_change; private EditText login_email, login_password; - private Button login_button, join_button, pw_change; + private Button login_button, join_button; private LoginFormState LoginFormState = new LoginFormState(); + public String getToken() { + return TOKEN; + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate( savedInstanceState ); @@ -116,6 +123,7 @@ public void onClick(View view) { } }); } + public void LoginResponse() { String userID = login_email.getText().toString().trim(); String userPassword = login_password.getText().toString().trim(); @@ -124,7 +132,7 @@ public void LoginResponse() { LoginRequest loginRequest = new LoginRequest(userID, userPassword); //loginRequest에 저장된 데이터와 함께 LoginAPI에서 정의한 getLoginResponse 함수를 실행한 후 응답을 받음 - loginAPI.getLoginResponse(loginRequest).enqueue(new Callback() { + service.getLoginResponse(loginRequest).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { //response.body()를 result에 저장 diff --git a/application/app/src/main/java/com/example/myapplication/ui/login/LoginResponse.java b/application/app/src/main/java/com/example/myapplication/ui/login/LoginResponse.java index 9ab7fb0..af0737b 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/login/LoginResponse.java +++ b/application/app/src/main/java/com/example/myapplication/ui/login/LoginResponse.java @@ -9,6 +9,9 @@ public class LoginResponse { @SerializedName("responseMessage") private String message; + //회원 기본 정보 + @SerializedName("memberEmail") + public String inputId; public int getStatusCode() { return statusCode; } @@ -16,4 +19,8 @@ public String getMessage() { return message; } + public String getuserID() { + return inputId; + } + } diff --git a/src/main/java/com/example/myapplication/ui/mainPage/ChatbotWeb.java b/application/app/src/main/java/com/example/myapplication/ui/mainPage/ChatbotWeb.java similarity index 100% rename from src/main/java/com/example/myapplication/ui/mainPage/ChatbotWeb.java rename to application/app/src/main/java/com/example/myapplication/ui/mainPage/ChatbotWeb.java diff --git a/application/app/src/main/java/com/example/myapplication/ui/mainPage/MainActivity.java b/application/app/src/main/java/com/example/myapplication/ui/mainPage/MainActivity.java index d1c2c7d..314d89b 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/mainPage/MainActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/mainPage/MainActivity.java @@ -28,8 +28,8 @@ protected void onCreate(Bundle savedInstanceState) { // getActionBar().setDisplayShowTitleEnabled(false); // 버튼 선언 - Button questionnaireBtn = (Button) findViewById(R.id.home_button1); - Button chatbotBtn = (Button) findViewById(R.id.home_button2); + Button chatbotBtn = (Button) findViewById(R.id.home_button1); + Button questionnaireBtn = (Button) findViewById(R.id.home_button2); Button diseaseListBtn = (Button) findViewById(R.id.home_button3); Button loginPage = (Button) findViewById(R.id.drawer_button_login); Button petPage = (Button) findViewById(R.id.drawer_button_pet); @@ -38,14 +38,14 @@ protected void onCreate(Bundle savedInstanceState) { ImageButton drawerBtn = (ImageButton) findViewById(R.id.toolbar_btn); // 버튼 클릭 시의 화면 이동 구현 - questionnaireBtn.setOnClickListener(new View.OnClickListener(){ + chatbotBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ - Intent intent = new Intent(getApplicationContext(), NewActivity.class); + Intent intent = new Intent(getApplicationContext(), ChatbotWeb.class); startActivity(intent); } }); - chatbotBtn.setOnClickListener(new View.OnClickListener(){ + questionnaireBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Intent intent = new Intent(getApplicationContext(), NewActivity.class); diff --git a/application/app/src/main/java/com/example/myapplication/ui/petSelect/AddPetActivity.java b/application/app/src/main/java/com/example/myapplication/ui/petSelect/AddPetActivity.java index d73f9e9..c7d162a 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/petSelect/AddPetActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/petSelect/AddPetActivity.java @@ -1,5 +1,6 @@ package com.example.myapplication.ui.petSelect; +import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; @@ -15,9 +16,9 @@ import androidx.appcompat.app.AppCompatActivity; import com.example.myapplication.R; -import com.example.myapplication.ui.join.RetrofitClient; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; import com.example.myapplication.ui.setting.PetinfoData; -import com.example.myapplication.ui.setting.ProfileAPI; import com.example.myapplication.ui.setting.ProfileResponse; import retrofit2.Call; @@ -28,9 +29,9 @@ public class AddPetActivity extends AppCompatActivity { private ImageView petprofile; private TextView petAge; private EditText petBreed,petNickName; - private Button btnAge, btnSave, btnCancel, selectCatButton, selectDogButton; + private Button man, woman, NeuteringYes, NeuteringNo, btnAge, btnSave, btnCancel, selectCatButton, selectDogButton; - private ProfileAPI profileAPI = RetrofitClient.getClient().create(ProfileAPI.class); + private ServiceAPI profileAPI = ServiceGenerator.createService(ServiceAPI.class); @Override protected void onCreate(Bundle savedInstanceState) { @@ -43,10 +44,15 @@ protected void onCreate(Bundle savedInstanceState) { btnCancel = findViewById(R.id.btnAddPetCancel); selectCatButton = findViewById(R.id.selectCat); selectDogButton = findViewById(R.id.selectDog); + man = findViewById(R.id.man); + woman = findViewById(R.id.woman); + NeuteringYes = findViewById(R.id.Neuteringyes); + NeuteringNo = findViewById(R.id.Neuteringno); petBreed = findViewById(R.id.petbreed); petNickName = findViewById(R.id.petNickname); petAge = findViewById(R.id.petAge); + btnSave.setOnClickListener(new View.OnClickListener(){ @Override @@ -103,22 +109,36 @@ public void onClick(DialogInterface dialog, int i) { selectCatButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - petprofile.setImageResource(R.drawable.cat); + petprofile.setImageResource(R.drawable.catface); } }); selectDogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - petprofile.setImageResource(R.drawable.dog); + petprofile.setImageResource(R.drawable.dogface); } }); } - //반려동물 정보 변경 + //반려동물 정보 설정 public void getPetinfo(){ String Name = petNickName.getText().toString().trim(); String Age = petAge.getText().toString().trim(); //String Breed = petBreed.getText().toString().trim(); - PetinfoData petinfoData = new PetinfoData(Name, Age, null, 1, 1); + String Gender = null; + String Neutering = null; + if (man.isEnabled()) { + Gender = man.getText().toString(); + } else if (woman.isEnabled()) { + Gender = woman.getText().toString(); + } + + if (NeuteringYes.isEnabled()) { + Neutering = NeuteringYes.getText().toString(); + } else if (NeuteringNo.isEnabled()) { + Neutering = NeuteringNo.getText().toString(); + } + + PetinfoData petinfoData = new PetinfoData(Name, Age, null, Gender, Neutering); Call call = profileAPI.getPetinfo(petinfoData); @@ -126,10 +146,11 @@ public void getPetinfo(){ @Override public void onResponse(Call call, Response response) { if (!response.equals(200)) { - Toast.makeText(getApplicationContext(),"변경되었습니다.", Toast.LENGTH_SHORT).show(); + Toast.makeText(getApplicationContext(),"등록되었습니다.", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(AddPetActivity.this, PetSelectActivity.class); - startActivity(intent); - AddPetActivity.this.finish(); + intent.putExtra("petName", Name); + setResult(Activity.RESULT_OK, intent); + finish(); } } diff --git a/application/app/src/main/java/com/example/myapplication/ui/petSelect/PetSelectActivity.java b/application/app/src/main/java/com/example/myapplication/ui/petSelect/PetSelectActivity.java index 54b6077..a4f8441 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/petSelect/PetSelectActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/petSelect/PetSelectActivity.java @@ -1,19 +1,19 @@ package com.example.myapplication.ui.petSelect; +import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; +import android.widget.Toast; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; - -import com.example.myapplication.R; -import com.example.myapplication.ui.mainPage.MainActivity; - import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import android.widget.Toast; +import com.example.myapplication.R; +import com.example.myapplication.ui.mainPage.MainActivity; import java.util.ArrayList; @@ -32,11 +32,8 @@ protected void onCreate(Bundle savedInstanceState) { mList = new ArrayList<>(); // 리사이클러뷰에 데이터추가 (함수가 밑에 구현되어있음) - addItem("cat", "밤이", "멍멍이"); - addItem("dog", "보리", "냐옹이"); - addItem("dog", "멍이", "냐옹이"); - addItem("cat", "나비", "냐옹이"); - addItem("cat", "냥냥", "냐옹이"); + addItem("cat", "밤이"); + addItem("dog", "보리"); mRecyclerViewAdapter = new RecyclerViewAdapter(mList); mRecyclerView.setAdapter(mRecyclerViewAdapter); @@ -53,31 +50,56 @@ public void onItemClick(int pos) { } }); - // 내가 구현한건 아닌데 필요할까봐 남겨놓음! - mRecyclerViewAdapter.setOnLongItemClickListener(new RecyclerViewAdapter.OnLongItemClickListener() { - @Override - public void onLongItemClick(int pos) { - Toast.makeText(getApplicationContext(), "onLongItemClick position : " + pos, Toast.LENGTH_SHORT).show(); - } - }); - // 반려동물 추가 버튼 클릭 Button addButton = (Button) findViewById(R.id.addButton); addButton.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Intent intent = new Intent(getApplicationContext(), AddPetActivity.class); - startActivity(intent); + startActivityForResult(intent, 101); } + }); + } + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + + if (requestCode == 101) { + if (resultCode == Activity.RESULT_OK) { + String petName = intent.getExtras().getString("petName"); + //리사이클러뷰 새로 생성 + } + } + } + + /*@Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + + ActivityResultLauncher mStartForResult = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + //result.getResultCode()를 통하여 결과값 확인 + if (result.getResultCode() == RESULT_OK) { + //ToDo + String petName = intent.getExtras().getString("petName"); + addItem("cat", petName, "멍멍이"); + mRecyclerViewAdapter.notifyDataSetChanged(); + } + if (result.getResultCode() == RESULT_CANCELED) { + //ToDo + } + }); + mStartForResult.launch(intent); + }*/ // 리사이클러뷰에 데이터추가 - public void addItem(String imgName, String mainText, String subText){ + public void addItem(String imgName, String mainText){ RecyclerViewItem item = new RecyclerViewItem(); item.setImgName(imgName); item.setMainText(mainText); - item.setSubText(subText); mList.add(item); } } \ No newline at end of file diff --git a/application/app/src/main/java/com/example/myapplication/ui/petSelect/RecyclerViewAdapter.java b/application/app/src/main/java/com/example/myapplication/ui/petSelect/RecyclerViewAdapter.java index aed9ec9..e7d72ff 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/petSelect/RecyclerViewAdapter.java +++ b/application/app/src/main/java/com/example/myapplication/ui/petSelect/RecyclerViewAdapter.java @@ -17,16 +17,13 @@ public class RecyclerViewAdapter extends RecyclerView.Adapter { public class ViewHolder extends RecyclerView.ViewHolder { ImageView imgView_item; - TextView txt_main; - TextView txt_sub; - + TextView petNickName; public ViewHolder(@NonNull View itemView) { super(itemView); imgView_item = (ImageView) itemView.findViewById(R.id.imgView_item); - txt_main = (TextView) itemView.findViewById(R.id.txt_main); - txt_sub = (TextView) itemView.findViewById(R.id.txt_sub); + petNickName = (TextView) itemView.findViewById(R.id.petName); imgView_item.setOnClickListener(new View.OnClickListener() { @Override @@ -80,12 +77,11 @@ public void onBindViewHolder(@NonNull RecyclerViewAdapter.ViewHolder holder, int RecyclerViewItem item = mList.get(position); if(item.getImgName()=="cat") // 아이템의 이미지 이름이 cat이면 고양이 사진으로 설정 - holder.imgView_item.setImageResource(R.drawable.cat); + holder.imgView_item.setImageResource(R.drawable.catface); else - holder.imgView_item.setImageResource(R.drawable.dog); + holder.imgView_item.setImageResource(R.drawable.dogface); - holder.txt_main.setText(item.getMainText()); - holder.txt_sub.setText(item.getSubText()); + holder.petNickName.setText(item.getMainText()); } @Override diff --git a/application/app/src/main/java/com/example/myapplication/ui/setting/PetProfileActivity.java b/application/app/src/main/java/com/example/myapplication/ui/setting/PetProfileActivity.java index ee00bc4..564267c 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/setting/PetProfileActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/setting/PetProfileActivity.java @@ -1,6 +1,7 @@ package com.example.myapplication.ui.setting; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; @@ -12,7 +13,8 @@ import android.widget.Toast; import com.example.myapplication.R; -import com.example.myapplication.ui.join.RetrofitClient; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; import com.example.myapplication.ui.petSelect.PetSelectActivity; import retrofit2.Call; @@ -22,10 +24,11 @@ public class PetProfileActivity extends SettingActivity { private TextView petAge; private EditText petBreed,petNickName; - private Button btnAge, btnSave, btnDelete; + private Button man, woman, NeuteringYes, NeuteringNo, btnAge, btnSave, btnDelete; + private ServiceAPI profileAPI = ServiceGenerator.createService(ServiceAPI.class); + public void MaterialButtonToggleGroup (Context context) { - private Intent intent; - private ProfileAPI profileAPI = RetrofitClient.getClient().create(ProfileAPI.class); + } @Override protected void onCreate(Bundle savedInstanceState) { @@ -38,11 +41,15 @@ protected void onCreate(Bundle savedInstanceState) { btnAge = findViewById(R.id.btnAge); btnSave = findViewById(R.id.btnSave); btnDelete = findViewById(R.id.btnDelete); + man = findViewById(R.id.man); + woman = findViewById(R.id.woman); + NeuteringYes = findViewById(R.id.Neuteringyes); + NeuteringNo = findViewById(R.id.Neuteringno); //사용자가 초기 설정한 축종에 따라 사진 보여주기 //품종 사용자가 작성한 내용, DB 연결해 보여주기 - getNameBreedAge(); + callPetinfo(); //반려동물 이름, 사용자가 작성한 내용 보여주기 @@ -123,7 +130,21 @@ public void updatePetPost(){ String Name = petNickName.getText().toString().trim(); String Age = petAge.getText().toString().trim(); //String Breed = petBreed.getText().toString().trim(); - PetinfoData petinfoData = new PetinfoData(Name, Age, null, 1, 1); + String Gender = null; + String Neutering = null; + if (man.isEnabled()) { + Gender = man.getText().toString(); + } else if (woman.isEnabled()) { + Gender = woman.getText().toString(); + } + + if (NeuteringYes.isEnabled()) { + Neutering = NeuteringYes.getText().toString(); + } else if (NeuteringNo.isEnabled()) { + Neutering = NeuteringNo.getText().toString(); + } + + PetinfoData petinfoData = new PetinfoData(Name, Age, null, Gender, Neutering); Call call = profileAPI.updatePetPost(Age, petinfoData); @@ -170,21 +191,26 @@ public void onFailure(Call call, Throwable t) { } }); } - public void getNameBreedAge(){ + public void callPetinfo(){ String Name = petNickName.getText().toString().trim(); String Age = petAge.getText().toString().trim(); //String Breed = petBreed.getText().toString().trim(); - PetinfoData petinfoData = new PetinfoData(Name, Age, null, 1, 1); - Call call = profileAPI.getNameBreedAge(Name, petinfoData); + //String Gender = null; + //String Neutering = ""; + PetinfoData petinfoData = new PetinfoData(Name, Age, null, null, null); + Call call = profileAPI.getPetinfo(petinfoData); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (!response.equals(200)) { //정보 받아오는 것에서 오류 발생 - /*petNickName.setText(response.body().getPetName()); - petBreed.setText(response.body().getPetBreed()); - petAge.setText(response.body().getPetAge());*/ + petNickName.setHint(response.body().getPetName()); + //petBreed.setText(response.body().getPetBreed()); + petAge.setText(response.body().getPetAge()); + /*if ((response.body().getPetGender()).equals("남")) { + + }*/ Toast.makeText(getApplicationContext(),"설정되었습니다.", Toast.LENGTH_SHORT).show(); } } @@ -199,6 +225,8 @@ public void onFailure(Call call, Throwable t) { .show(); } }); + + } } diff --git a/application/app/src/main/java/com/example/myapplication/ui/setting/PetinfoData.java b/application/app/src/main/java/com/example/myapplication/ui/setting/PetinfoData.java index a186f25..4494373 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/setting/PetinfoData.java +++ b/application/app/src/main/java/com/example/myapplication/ui/setting/PetinfoData.java @@ -15,17 +15,17 @@ public class PetinfoData { public String petAge; @SerializedName("petGender") - public int petGender; + public String petGender; - @SerializedName("pet중성화") - public int pet중성화; + @SerializedName("petNeutering") + public String petNeutering; - public PetinfoData(String petName, String petAge, String petBreed, int petGender, int pet중성화) { + public PetinfoData(String petName, String petAge, String petBreed, String petGender, String petNeutering) { this.petName = petName; this.petAge = petAge; this.petBreed = petBreed; this.petGender = petGender; - this.pet중성화 = pet중성화; + this.petNeutering = petNeutering; } } diff --git a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileAPI.java b/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileAPI.java deleted file mode 100644 index 3b309d7..0000000 --- a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileAPI.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.myapplication.ui.setting; - -import retrofit2.Call; -import retrofit2.http.Body; -import retrofit2.http.DELETE; -import retrofit2.http.POST; -import retrofit2.http.PUT; -import retrofit2.http.Path; - -public interface ProfileAPI { - //@통신 방식("통신 API명") - - //반려동물 정보 등록 - @POST("/PetSelect") - Call getPetinfo(@Body PetinfoData petinfoData); - - //반려동물 초기 셋팅 - @POST("/PetProfile/{petName}") - Call getNameBreedAge( - @Path("petName") String petName, - @Body PetinfoData petinfoData - ); - - //회원 탈퇴 - @DELETE("/Profile/{memberEmail}") - Call deletePost(@Path("memberEmail")int id); - - //반려동물 정보 수정 - @PUT("/Profile/{petAge}") - Call updatePetPost(@Path("petAge") String petAge, - @Body PetinfoData petinfoData); - - //반려동물 삭제 - @DELETE("/Profile/{petName}") - Call deletePetPost(@Path("petName")int name); -} diff --git a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileActivity.java b/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileActivity.java index 32d1276..c1ef0d3 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileActivity.java +++ b/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileActivity.java @@ -8,9 +8,12 @@ import android.widget.TextView; import com.example.myapplication.R; -import com.example.myapplication.ui.join.RetrofitClient; -import com.example.myapplication.ui.login.LoginActivity; +import com.example.myapplication.ui.ServiceSetting.ServiceGenerator; import com.example.myapplication.ui.join.PasswordChangeActivity; +import com.example.myapplication.ui.ServiceSetting.ServiceAPI; +import com.example.myapplication.ui.login.LoginActivity; +import com.example.myapplication.ui.login.LoginRequest; +import com.example.myapplication.ui.login.LoginResponse; import retrofit2.Call; import retrofit2.Callback; @@ -18,18 +21,20 @@ public class ProfileActivity extends SettingActivity { private Intent intent; - - private ProfileAPI profileAPI = RetrofitClient.getClient().create(ProfileAPI.class); + private TextView ID, pwchange, logout, deleteinfo; + private ServiceAPI profileAPI = ServiceGenerator.createService(ServiceAPI.class); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.profile); - TextView ID = findViewById(R.id.userID); - TextView pwchange = findViewById(R.id.pwchange); - TextView logout = findViewById(R.id.logout); - TextView deleteinfo = findViewById(R.id.deleteinfo); + ID = findViewById(R.id.userID); + pwchange = findViewById(R.id.pwchange); + logout = findViewById(R.id.logout); + deleteinfo = findViewById(R.id.deleteinfo); + + calluserInfo(); //비밀번호 변경 pwchange.setOnClickListener(new View.OnClickListener() { @@ -99,4 +104,31 @@ public void onFailure(Call call, Throwable t) { } }); } + public void calluserInfo(){ + String userID = ID.getText().toString().trim(); + LoginRequest loginRequest = new LoginRequest(userID, null); + Call call = profileAPI.getLoginResponse(loginRequest); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (!response.equals(200)) { + //정보 받아오는 것에서 오류 발생 + ID.setText(response.body().getuserID()); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + AlertDialog.Builder builder = new AlertDialog.Builder(ProfileActivity.this); + builder.setTitle("알림") + .setMessage("잠시 후에 다시 시도해주세요.") + .setPositiveButton("확인", null) + .create() + .show(); + } + }); + + + } } diff --git a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileResponse.java b/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileResponse.java index 91b04d9..5f6dbcf 100644 --- a/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileResponse.java +++ b/application/app/src/main/java/com/example/myapplication/ui/setting/ProfileResponse.java @@ -19,6 +19,10 @@ public class ProfileResponse { private String petBreed; @SerializedName("petAge") private String petAge; + /*@SerializedName("petGender") + public String petGender; + @SerializedName("petNeutering") + public String petNeutering;*/ public String getPetName() { return petName; @@ -29,6 +33,7 @@ public String getPetBreed() { public String getPetAge() { return petAge; } + //public String getPetGender() { return petGender;} public int getCode() { return code; diff --git a/application/app/src/main/res/drawable-xxhdpi/dog.png b/application/app/src/main/res/drawable-xxhdpi/dog.png deleted file mode 100644 index 97e1bd0..0000000 Binary files a/application/app/src/main/res/drawable-xxhdpi/dog.png and /dev/null differ diff --git a/src/main/res/drawable/background_default.png b/application/app/src/main/res/drawable/background_default.png similarity index 100% rename from src/main/res/drawable/background_default.png rename to application/app/src/main/res/drawable/background_default.png diff --git a/src/main/res/drawable/background_detail.png b/application/app/src/main/res/drawable/background_detail.png similarity index 100% rename from src/main/res/drawable/background_detail.png rename to application/app/src/main/res/drawable/background_detail.png diff --git a/src/main/res/drawable/background_setting.png b/application/app/src/main/res/drawable/background_setting.png similarity index 100% rename from src/main/res/drawable/background_setting.png rename to application/app/src/main/res/drawable/background_setting.png diff --git a/application/app/src/main/res/drawable/cat.png b/application/app/src/main/res/drawable/cat.png deleted file mode 100644 index ad3a43f..0000000 Binary files a/application/app/src/main/res/drawable/cat.png and /dev/null differ diff --git a/src/main/res/drawable/catface.png b/application/app/src/main/res/drawable/catface.png similarity index 100% rename from src/main/res/drawable/catface.png rename to application/app/src/main/res/drawable/catface.png diff --git a/src/main/res/drawable/dogface.png b/application/app/src/main/res/drawable/dogface.png similarity index 100% rename from src/main/res/drawable/dogface.png rename to application/app/src/main/res/drawable/dogface.png diff --git a/src/main/res/drawable/icon_app.png b/application/app/src/main/res/drawable/icon_app.png similarity index 100% rename from src/main/res/drawable/icon_app.png rename to application/app/src/main/res/drawable/icon_app.png diff --git a/src/main/res/drawable/icon_app2.png b/application/app/src/main/res/drawable/icon_app2.png similarity index 100% rename from src/main/res/drawable/icon_app2.png rename to application/app/src/main/res/drawable/icon_app2.png diff --git a/src/main/res/drawable/icon_appname.png b/application/app/src/main/res/drawable/icon_appname.png similarity index 100% rename from src/main/res/drawable/icon_appname.png rename to application/app/src/main/res/drawable/icon_appname.png diff --git a/src/main/res/drawable/icon_appname2.png b/application/app/src/main/res/drawable/icon_appname2.png similarity index 100% rename from src/main/res/drawable/icon_appname2.png rename to application/app/src/main/res/drawable/icon_appname2.png diff --git a/src/main/res/drawable/icon_appname3.png b/application/app/src/main/res/drawable/icon_appname3.png similarity index 100% rename from src/main/res/drawable/icon_appname3.png rename to application/app/src/main/res/drawable/icon_appname3.png diff --git a/src/main/res/drawable/icon_appname4.png b/application/app/src/main/res/drawable/icon_appname4.png similarity index 100% rename from src/main/res/drawable/icon_appname4.png rename to application/app/src/main/res/drawable/icon_appname4.png diff --git a/src/main/res/drawable/user.png b/application/app/src/main/res/drawable/user.png similarity index 100% rename from src/main/res/drawable/user.png rename to application/app/src/main/res/drawable/user.png diff --git a/application/app/src/main/res/layout-w1240dp/activity_login.xml b/application/app/src/main/res/layout-w1240dp/activity_login.xml index 2445403..f42c0e9 100644 --- a/application/app/src/main/res/layout-w1240dp/activity_login.xml +++ b/application/app/src/main/res/layout-w1240dp/activity_login.xml @@ -9,6 +9,7 @@ android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" + android:background="@drawable/background_default" tools:context=".ui.login.LoginActivity"> + app:layout_constraintTop_toTopOf="parent" + android:textColor="@color/white" + android:textColorHint="@color/white" + android:backgroundTint="@color/white"/> + app:layout_constraintTop_toBottomOf="@+id/username" + android:textColor="@color/white" + android:textColorHint="@color/white" + android:backgroundTint="@color/white"/>