diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 7b71903..0c0c338 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -3,20 +3,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b6d3fd6..36dc8f8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,6 +15,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.KidShift"
tools:targetApi="31">
+
diff --git a/app/src/main/java/one/nem/kidshift/LoginActivity.java b/app/src/main/java/one/nem/kidshift/LoginActivity.java
index d9a6a9b..2c070b8 100644
--- a/app/src/main/java/one/nem/kidshift/LoginActivity.java
+++ b/app/src/main/java/one/nem/kidshift/LoginActivity.java
@@ -1,5 +1,6 @@
package one.nem.kidshift;
+import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
@@ -17,10 +18,11 @@ import javax.inject.Inject;
import dagger.hilt.android.AndroidEntryPoint;
import one.nem.kidshift.data.UserSettings;
import one.nem.kidshift.data.retrofit.KidShiftApiService;
-import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginRequest;
-import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginResponse;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthRequest;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthResponse;
import one.nem.kidshift.utils.KSLogger;
import one.nem.kidshift.utils.factory.KSLoggerFactory;
+import retrofit2.Call;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
@@ -36,6 +38,9 @@ public class LoginActivity extends AppCompatActivity {
@Inject
UserSettings userSettings;
+ @Inject
+ KidShiftApiService kidShiftApiService;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -49,61 +54,41 @@ public class LoginActivity extends AppCompatActivity {
logger = loggerFactory.create("LoginActivity");
- // Retrofit init
- KidShiftApiService apiService = new Retrofit.Builder()
- .baseUrl("https://kidshift-beta.nem.one/")
- .addConverterFactory(GsonConverterFactory.create())
- .build()
- .create(KidShiftApiService.class);
-
EditText emailEditText = findViewById(R.id.emailEditText);
EditText passwordEditText = findViewById(R.id.passwordEditText);
findViewById(R.id.loginButton).setOnClickListener(v -> {
- CompletableFuture.supplyAsync(() -> {
+ String email = emailEditText.getText().toString(); // TODO: メールアドレスのバリデーション
+ String password = passwordEditText.getText().toString();
+
+ CompletableFuture.runAsync(() -> {
+ Call call = kidShiftApiService.parentLogin(new ParentAuthRequest(email, password));
try {
- Response response = apiService.parentLogin(
- new ParentLoginRequest(
- emailEditText.getText().toString(),
- passwordEditText.getText().toString()
- )).execute();
-
- return response;
- } catch (IOException e) {
- logger.error("IOException");
- throw new RuntimeException(e);
- }
- }).thenAccept(response -> {
- if (response.isSuccessful()) {
- logger.info("Login Success");
- logger.debug("AccessToken: " + response.body().getAccessToken());
-
- UserSettings.AppCommonSetting appCommonSetting = userSettings.getAppCommonSetting();
- appCommonSetting.setLoggedIn(true);
- appCommonSetting.setAccessToken(response.body().getAccessToken());
- appCommonSetting.setChildMode(false);
-
- finish();
- } else {
- logger.error("Login Failed");
- try {
- logger.debug("Response: " + response.errorBody().string());
- } catch (IOException e) {
- logger.error("IOException while reading error body");
+ Response response = call.execute();
+ if (response.isSuccessful()) {
+ ParentAuthResponse parentAuthResponse = response.body();
+ if (parentAuthResponse == null || parentAuthResponse.getAccessToken() == null) {
+ // エラー処理
+ logger.error("ParentAuthResponseがnullまたはAccessTokenがnullです");
+ return;
+ }
+ userSettings.getAppCommonSetting().setLoggedIn(true);
+ userSettings.getAppCommonSetting().setAccessToken(parentAuthResponse.getAccessToken());
+ } else {
+ logger.error("リクエストに失敗しました");
+ // エラー処理
}
- // ログイン失敗時の処理
+ } catch (Exception e) {
+ logger.error("リクエストに失敗しました: " + e.getMessage());
+ e.printStackTrace();
}
- }).exceptionally(e -> {
- logger.error("Exception occurred: " + e.getMessage());
- return null;
+ }).thenRun(() -> {
+ startActivity(new Intent(this, MainActivity.class));
});
});
- // for Debug
- findViewById(R.id.loginButton).setOnLongClickListener(v -> {
- // ログイン画面をバイパスしてメイン画面に遷移
- finish();
- return true;
+ findViewById(R.id.intentRegisterButton).setOnClickListener(v -> {
+ startActivity(new Intent(this, RegisterActivity.class));
});
}
}
\ No newline at end of file
diff --git a/app/src/main/java/one/nem/kidshift/RegisterActivity.java b/app/src/main/java/one/nem/kidshift/RegisterActivity.java
new file mode 100644
index 0000000..f251e9d
--- /dev/null
+++ b/app/src/main/java/one/nem/kidshift/RegisterActivity.java
@@ -0,0 +1,93 @@
+package one.nem.kidshift;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.EditText;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.util.concurrent.CompletableFuture;
+
+import javax.inject.Inject;
+
+import dagger.hilt.android.AndroidEntryPoint;
+import one.nem.kidshift.data.UserSettings;
+import one.nem.kidshift.data.retrofit.KidShiftApiService;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthRequest;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthResponse;
+import one.nem.kidshift.utils.KSLogger;
+import one.nem.kidshift.utils.factory.KSLoggerFactory;
+import retrofit2.Call;
+import retrofit2.Response;
+
+@AndroidEntryPoint
+public class RegisterActivity extends AppCompatActivity {
+
+
+ @Inject
+ KidShiftApiService kidShiftApiService;
+
+ @Inject
+ UserSettings userSettings;
+
+ @Inject
+ KSLoggerFactory loggerFactory;
+
+ private KSLogger logger;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_register);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ logger = loggerFactory.create("RegisterActivity");
+
+ EditText emailEditText = findViewById(R.id.emailEditText); // TODO: メールアドレスのバリデーション
+ EditText passwordEditText = findViewById(R.id.passwordEditText);
+
+ findViewById(R.id.registerButton).setOnClickListener(v -> {
+ String email = emailEditText.getText().toString();
+ String password = passwordEditText.getText().toString();
+
+ CompletableFuture.runAsync(() -> {
+ Call call = kidShiftApiService.parentRegister(new ParentAuthRequest(email, password));
+ try {
+ Response response = call.execute();
+ if (response.isSuccessful()) {
+ ParentAuthResponse parentAuthResponse = response.body();
+ if (parentAuthResponse == null || parentAuthResponse.getAccessToken() == null) {
+ // エラー処理
+ logger.error("ParentAuthResponseがnullまたはAccessTokenがnullです");
+ return;
+ }
+ userSettings.getAppCommonSetting().setLoggedIn(true);
+ userSettings.getAppCommonSetting().setAccessToken(parentAuthResponse.getAccessToken());
+ } else {
+ logger.error("リクエストに失敗しました");
+ // エラー処理
+ }
+ } catch (Exception e) {
+ logger.error("リクエストに失敗しました: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }).thenRun(() -> {
+ startActivity(new Intent(this, MainActivity.class));
+ });
+ });
+
+ findViewById(R.id.intentLoginButton).setOnClickListener(v -> {
+ startActivity(new Intent(this, LoginActivity.class));
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 389d6ef..4807f50 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -38,16 +38,33 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="※Loginボタン長押しでBypass"
- app:layout_constraintBottom_toTopOf="@+id/loginButton"
+ app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
-
+ app:layout_constraintStart_toStartOf="parent">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml
new file mode 100644
index 0000000..4b255a7
--- /dev/null
+++ b/app/src/main/res/layout/activity_register.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java b/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java
index a0fd57f..d249874 100644
--- a/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java
+++ b/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java
@@ -6,8 +6,8 @@ import one.nem.kidshift.data.retrofit.model.child.ChildListResponse;
import one.nem.kidshift.data.retrofit.model.child.ChildLoginCodeResponse;
import one.nem.kidshift.data.retrofit.model.child.ChildResponse;
import one.nem.kidshift.data.retrofit.model.parent.ParentInfoResponse;
-import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginRequest;
-import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginResponse;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthRequest;
+import one.nem.kidshift.data.retrofit.model.parent.auth.ParentAuthResponse;
import one.nem.kidshift.data.retrofit.model.task.TaskAddRequest;
import one.nem.kidshift.data.retrofit.model.task.TaskListResponse;
import one.nem.kidshift.data.retrofit.model.task.TaskResponse;
@@ -15,7 +15,6 @@ import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
-import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.PUT;
@@ -33,7 +32,15 @@ public interface KidShiftApiService {
* @return ParentLoginResponse
*/
@POST("/parent/auth/login")
- Call parentLogin(@Body ParentLoginRequest request);
+ Call parentLogin(@Body ParentAuthRequest request);
+
+ /**
+ * 保護者登録処理
+ * @param request ParentRegisterRequest
+ * @return ParentRegisterResponse
+ */
+ @POST("/parent/auth/register")
+ Call parentRegister(@Body ParentAuthRequest request);
/**
* 保護者アカウント情報取得処理
diff --git a/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginRequest.java b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthRequest.java
similarity index 86%
rename from data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginRequest.java
rename to data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthRequest.java
index 9245db3..7673bca 100644
--- a/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginRequest.java
+++ b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthRequest.java
@@ -1,6 +1,6 @@
package one.nem.kidshift.data.retrofit.model.parent.auth;
-public class ParentLoginRequest {
+public class ParentAuthRequest {
private String email;
private String password;
@@ -9,7 +9,7 @@ public class ParentLoginRequest {
* @param email メールアドレス
* @param password パスワード
*/
- public ParentLoginRequest(String email, String password) {
+ public ParentAuthRequest(String email, String password) {
this.email = email;
this.password = password;
}
diff --git a/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginResponse.java b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthResponse.java
similarity index 82%
rename from data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginResponse.java
rename to data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthResponse.java
index 08197ba..a3b5b77 100644
--- a/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginResponse.java
+++ b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentAuthResponse.java
@@ -1,13 +1,13 @@
package one.nem.kidshift.data.retrofit.model.parent.auth;
-public class ParentLoginResponse {
+public class ParentAuthResponse {
private String accessToken;
/**
* コンストラクタ (全プロパティ)
* @param accessToken アクセストークン
*/
- public ParentLoginResponse(String accessToken) {
+ public ParentAuthResponse(String accessToken) {
this.accessToken = accessToken;
}