From 159cf15b9fb364f80999a067d6f8a61d4e452ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 10:43:37 +0900 Subject: [PATCH 01/41] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=82=BF=E3=83=95?= =?UTF-8?q?=E3=82=A7=E3=83=BC=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/src/main/java/one/nem/kidshift/data/UserSettings.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index a4fbdc5..cb7ba42 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -2,6 +2,10 @@ package one.nem.kidshift.data; public interface UserSettings { + interface Api { + String getApiBaseUrl(); + } + interface Task { int getDefaultIconColor(); String getDefaultIconEmoji(); From a2eaaae3170d2e28afa4f49acbb357fd09d3602b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 10:47:04 +0900 Subject: [PATCH 02/41] =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=B9=E5=90=8D?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3,=20=E3=83=80=E3=83=9F=E3=83=BC=E5=AE=9F?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/data/UserSettings.java | 7 +++++-- .../data/impl/UserSettingsDummyImpl.java | 20 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index cb7ba42..0398e56 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -2,11 +2,14 @@ package one.nem.kidshift.data; public interface UserSettings { - interface Api { + ApiSetting getApiSetting(); + TaskSetting getTaskSetting(); + + interface ApiSetting { String getApiBaseUrl(); } - interface Task { + interface TaskSetting { int getDefaultIconColor(); String getDefaultIconEmoji(); } diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java index faa8f88..99d186d 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java @@ -2,11 +2,29 @@ package one.nem.kidshift.data.impl; import android.graphics.Color; +import dagger.Binds; import one.nem.kidshift.data.UserSettings; public class UserSettingsDummyImpl implements UserSettings { - class Task implements UserSettings.Task { + @Override + public UserSettings.TaskSetting getTaskSetting() { + return new TaskSettingImpl(); + } + + @Override + public UserSettings.ApiSetting getApiSetting() { + return new ApiSettingImpl(); + } + + public class ApiSettingImpl implements UserSettings.ApiSetting { + @Override + public String getApiBaseUrl() { + return "https://kidshift-beta.nem.one/"; + } + } + + public class TaskSettingImpl implements UserSettings.TaskSetting { @Override public int getDefaultIconColor() { return Color.parseColor("#FF0000"); From 0ef8096f5d6205cbc89735e267d2f378026d83b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 10:47:31 +0900 Subject: [PATCH 03/41] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=A9=E3=82=AF=E3=82=BF=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/data/impl/UserSettingsDummyImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java index 99d186d..8a93d69 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java @@ -2,11 +2,17 @@ package one.nem.kidshift.data.impl; import android.graphics.Color; +import javax.inject.Inject; + import dagger.Binds; import one.nem.kidshift.data.UserSettings; public class UserSettingsDummyImpl implements UserSettings { + @Inject + public UserSettingsDummyImpl() { + } + @Override public UserSettings.TaskSetting getTaskSetting() { return new TaskSettingImpl(); From 09dec01151563dfe66ad43cbefc4784a227e1884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 10:49:58 +0900 Subject: [PATCH 04/41] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC=E3=81=A7=E8=AA=AD=E3=81=BF?= =?UTF-8?q?=E8=BE=BC=E3=82=81=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nem/kidshift/feature/debug/DebugCommandProcessor.java | 7 ++++++- .../kidshift/feature/debug/DebugDebugConsoleFragment.java | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java index d34b5f2..2c08176 100644 --- a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java +++ b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java @@ -10,6 +10,7 @@ import dagger.hilt.EntryPoint; import dagger.hilt.InstallIn; import dagger.hilt.android.AndroidEntryPoint; import dagger.hilt.android.components.FragmentComponent; +import one.nem.kidshift.data.UserSettings; import one.nem.kidshift.utils.FeatureFlag; import one.nem.kidshift.utils.KSLogger; import one.nem.kidshift.utils.models.LogModel; @@ -20,12 +21,16 @@ public class DebugCommandProcessor { KSLogger ksLogger; FeatureFlag featureFlag; + UserSettings userSettings; + public DebugCommandProcessor( KSLogger ksLogger, - FeatureFlag featureFlag + FeatureFlag featureFlag, + UserSettings userSettings ) { this.ksLogger = ksLogger; this.featureFlag = featureFlag; + this.userSettings = userSettings; } public String execute(String command) { diff --git a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugDebugConsoleFragment.java b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugDebugConsoleFragment.java index 76e58d1..1c6ccd9 100644 --- a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugDebugConsoleFragment.java +++ b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugDebugConsoleFragment.java @@ -16,6 +16,7 @@ import java.util.List; import javax.inject.Inject; import dagger.hilt.android.AndroidEntryPoint; +import one.nem.kidshift.data.UserSettings; import one.nem.kidshift.feature.debug.adapter.DebugCommandListItemAdapter; import one.nem.kidshift.feature.debug.model.DebugCommandItemModel; import one.nem.kidshift.utils.FeatureFlag; @@ -29,6 +30,9 @@ public class DebugDebugConsoleFragment extends Fragment { @Inject FeatureFlag featureFlag; + @Inject + UserSettings userSettings; + private final List debugCommandItemModels = new ArrayList<>(); DebugCommandListItemAdapter debugCommandItemAdapter; @@ -59,7 +63,7 @@ public class DebugDebugConsoleFragment extends Fragment { TextView debugCommandInput = view.findViewById(R.id.debugCommandEditText); view.findViewById(R.id.debugCommandExecuteButton).setOnClickListener(v -> { DebugCommandProcessor debugCommandProcessor = new DebugCommandProcessor( - ksLogger, featureFlag); + ksLogger, featureFlag, userSettings); debugCommandItemModels.add( new DebugCommandItemModel( debugCommandInput.getText().toString(), From 0892bc12a986e166de755641f85f6b1837c0a57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:01:19 +0900 Subject: [PATCH 05/41] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E5=AE=9F=E8=A3=85=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/debug/DebugCommandProcessor.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java index 2c08176..8673026 100644 --- a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java +++ b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java @@ -1,5 +1,7 @@ package one.nem.kidshift.feature.debug; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -57,11 +59,45 @@ public class DebugCommandProcessor { return executeLog(commandArray); case "flag": return executeFlag(commandArray); + case "setting": + return executeSetting(commandArray); default: throw new InvalidCommandException(); } } + private String executeSetting(String[] commandArray) { + commandArray = shiftArray(commandArray); + switch (commandArray[0]) { + case "get": + commandArray = shiftArray(commandArray); + Class settingClazz; + // リフレクションで取得 + try { + // userSettingsのgetterでsettingクラスを取得 + Method method = userSettings.getClass().getMethod("get" + commandArray[0]); + settingClazz = method.getReturnType(); + + //settingクラスのgetterで値を取得 + Method settingMethod = settingClazz.getMethod("get" + commandArray[1]); + return settingMethod.invoke(userSettings.getTaskSetting()).toString(); + } catch (NoSuchMethodException e) { + return "Method" + commandArray[0] + " not found \n" + e.getMessage(); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + return "Method" + commandArray[0] + " not accessible \n" + e.getMessage(); + } catch (Exception e) { + return "Something went wrong! \n" + e.getMessage(); + } + case "set": + commandArray = shiftArray(commandArray); + return "TODO"; + default: + return "TODO"; + } + } + private String executeLog(String[] commandArray) { commandArray = shiftArray(commandArray); switch (commandArray[0]) { From 0cae63b51217f36e0d07e5a3dbf56668d3b1bae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:11:02 +0900 Subject: [PATCH 06/41] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/debug/DebugCommandProcessor.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java index 8673026..7fca9a1 100644 --- a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java +++ b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java @@ -68,19 +68,19 @@ public class DebugCommandProcessor { private String executeSetting(String[] commandArray) { commandArray = shiftArray(commandArray); + Class settingClazz; switch (commandArray[0]) { case "get": commandArray = shiftArray(commandArray); - Class settingClazz; // リフレクションで取得 try { // userSettingsのgetterでsettingクラスを取得 Method method = userSettings.getClass().getMethod("get" + commandArray[0]); - settingClazz = method.getReturnType(); + Object setting = method.invoke(userSettings); //settingクラスのgetterで値を取得 - Method settingMethod = settingClazz.getMethod("get" + commandArray[1]); - return settingMethod.invoke(userSettings.getTaskSetting()).toString(); + Method settingMethod = setting.getClass().getMethod("get" + commandArray[1]); + return settingMethod.invoke(setting).toString(); } catch (NoSuchMethodException e) { return "Method" + commandArray[0] + " not found \n" + e.getMessage(); } catch (InvocationTargetException e) { @@ -92,7 +92,25 @@ public class DebugCommandProcessor { } case "set": commandArray = shiftArray(commandArray); - return "TODO"; + // リフレクションで取得 + try { + // userSettingsのgetterでsettingクラスを取得 + Method method = userSettings.getClass().getMethod("get" + commandArray[0]); + Object setting = method.invoke(userSettings); + + //settingクラスのsetterで値を設定 + Method settingMethod = setting.getClass().getMethod("set" + commandArray[1], String.class); // TODO: String以外の型に対応 + settingMethod.invoke(setting, commandArray[2]); + return "Setting set!"; + } catch (NoSuchMethodException e) { + return "Method" + commandArray[0] + " not found \n" + e.getMessage(); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + return "Method" + commandArray[0] + " not accessible \n" + e.getMessage(); + } catch (Exception e) { + return "Something went wrong! \n" + e.getMessage(); + } default: return "TODO"; } From 542db318a8a21acdccddc495cf71cba3e74b35bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:11:44 +0900 Subject: [PATCH 07/41] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/feature/debug/DebugCommandProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java index 7fca9a1..51990e8 100644 --- a/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java +++ b/feature/debug/src/main/java/one/nem/kidshift/feature/debug/DebugCommandProcessor.java @@ -66,6 +66,7 @@ public class DebugCommandProcessor { } } + // TODO: リフレクション処理切り出し, 複数の引数に対応, String以外の引数に対応 private String executeSetting(String[] commandArray) { commandArray = shiftArray(commandArray); Class settingClazz; From d2c72109b8eb7697d7cee5b523ba71e5ea9c6b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:22:53 +0900 Subject: [PATCH 08/41] =?UTF-8?q?Setter=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/kidshift/data/UserSettings.java | 4 ++++ .../kidshift/data/impl/UserSettingsDummyImpl.java | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index 0398e56..517306f 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -7,10 +7,14 @@ public interface UserSettings { interface ApiSetting { String getApiBaseUrl(); + void setApiBaseUrl(String url); } interface TaskSetting { int getDefaultIconColor(); + void setDefaultIconColor(int color); String getDefaultIconEmoji(); + void setDefaultIconEmoji(String emoji); + } } diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java index 8a93d69..2386b07 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java @@ -28,6 +28,11 @@ public class UserSettingsDummyImpl implements UserSettings { public String getApiBaseUrl() { return "https://kidshift-beta.nem.one/"; } + + @Override + public void setApiBaseUrl(String url) { + + } } public class TaskSettingImpl implements UserSettings.TaskSetting { @@ -36,9 +41,19 @@ public class UserSettingsDummyImpl implements UserSettings { return Color.parseColor("#FF0000"); } + @Override + public void setDefaultIconColor(int color) { + + } + @Override public String getDefaultIconEmoji() { return "🤔"; } + + @Override + public void setDefaultIconEmoji(String emoji) { + + } } } From a5a0c48cb91a93a850852f456d400fc65641700b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:40:05 +0900 Subject: [PATCH 09/41] =?UTF-8?q?Impl=E4=BD=9C=E6=88=90,=20=E3=83=A1?= =?UTF-8?q?=E3=82=BD=E3=83=83=E3=83=89=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kidshift/data/impl/UserSettingsImpl.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java new file mode 100644 index 0000000..99ef54f --- /dev/null +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -0,0 +1,49 @@ +package one.nem.kidshift.data.impl; + +import one.nem.kidshift.data.UserSettings; + +public class UserSettingsImpl implements UserSettings { + @Override + public ApiSetting getApiSetting() { + return null; + } + + @Override + public TaskSetting getTaskSetting() { + return null; + } + + public class ApiSettingImpl implements UserSettings.ApiSetting { + @Override + public String getApiBaseUrl() { + return "https://kidshift-beta.nem.one/"; + } + + @Override + public void setApiBaseUrl(String url) { + + } + } + + public class TaskSettingImpl implements UserSettings.TaskSetting { + @Override + public int getDefaultIconColor() { + return 0; + } + + @Override + public void setDefaultIconColor(int color) { + + } + + @Override + public String getDefaultIconEmoji() { + return ""; + } + + @Override + public void setDefaultIconEmoji(String emoji) { + + } + } +} From d03ec885e8d725caa58e0ca82d18fbb3d9f6d4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 11:41:19 +0900 Subject: [PATCH 10/41] =?UTF-8?q?sharedPrefUtils,=20=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=83=A9=E3=82=AF=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nem/kidshift/data/impl/UserSettingsImpl.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index 99ef54f..76e0cbc 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -1,16 +1,27 @@ package one.nem.kidshift.data.impl; +import javax.inject.Inject; + import one.nem.kidshift.data.UserSettings; +import one.nem.kidshift.utils.factory.SharedPrefUtilsFactory; public class UserSettingsImpl implements UserSettings { + + SharedPrefUtilsFactory sharedPrefUtilsFactory; + + @Inject + public UserSettingsImpl(SharedPrefUtilsFactory sharedPrefUtilsFactory) { + this.sharedPrefUtilsFactory = sharedPrefUtilsFactory; + } + @Override public ApiSetting getApiSetting() { - return null; + return new ApiSettingImpl(); } @Override public TaskSetting getTaskSetting() { - return null; + return new TaskSettingImpl(); } public class ApiSettingImpl implements UserSettings.ApiSetting { From 86c1b6a552bfb91c036bd73f80cf88f8404881cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:01:42 +0900 Subject: [PATCH 11/41] =?UTF-8?q?ApiSetting=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kidshift/data/impl/UserSettingsImpl.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index 76e0cbc..479ef3a 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -1,8 +1,14 @@ package one.nem.kidshift.data.impl; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Objects; + import javax.inject.Inject; import one.nem.kidshift.data.UserSettings; +import one.nem.kidshift.utils.SharedPrefUtils; import one.nem.kidshift.utils.factory.SharedPrefUtilsFactory; public class UserSettingsImpl implements UserSettings { @@ -25,14 +31,34 @@ public class UserSettingsImpl implements UserSettings { } public class ApiSettingImpl implements UserSettings.ApiSetting { + + SharedPrefUtils sharedPrefUtils; + + String apiBaseUrl; + + ApiSettingImpl() { + sharedPrefUtils = sharedPrefUtilsFactory.create("user_settings"); + ApiSettingImpl apiSetting = sharedPrefUtils.getObject("api_setting", ApiSettingImpl.class); + // TODO: リフレクションつかって一括でやる?(プロパティ数があまりにも増えるなら?), 三項演算子やめる?, デフォルト値の設定方法を改善する + if (apiSetting != null) { + apiBaseUrl = apiSetting.getApiBaseUrl() == null ? "https://kidshift-beta.nem.one/" : + Objects.equals(apiSetting.getApiBaseUrl(), "") ? "https://kidshift-beta.nem.one/" : apiSetting.getApiBaseUrl(); + } + } + + private void save() { + sharedPrefUtils.saveObject("api_setting", this); + } + @Override public String getApiBaseUrl() { - return "https://kidshift-beta.nem.one/"; + return apiBaseUrl; } @Override public void setApiBaseUrl(String url) { - + apiBaseUrl = url; + save(); } } From 05ef2a6b071b7eb92655ba822cc08cab7c32b372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:03:16 +0900 Subject: [PATCH 12/41] =?UTF-8?q?transient=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/kidshift/data/impl/UserSettingsImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index 479ef3a..c635c52 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -32,6 +32,7 @@ public class UserSettingsImpl implements UserSettings { public class ApiSettingImpl implements UserSettings.ApiSetting { + transient SharedPrefUtils sharedPrefUtils; String apiBaseUrl; @@ -63,6 +64,11 @@ public class UserSettingsImpl implements UserSettings { } public class TaskSettingImpl implements UserSettings.TaskSetting { + + SharedPrefUtils sharedPrefUtils; + + int defaultIconColor; + @Override public int getDefaultIconColor() { return 0; From 666747312bec58a30d7ffcd653bd8887dd6a507e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:07:01 +0900 Subject: [PATCH 13/41] =?UTF-8?q?TaskSetting=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kidshift/data/impl/UserSettingsImpl.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index c635c52..fcaf33f 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -42,8 +42,7 @@ public class UserSettingsImpl implements UserSettings { ApiSettingImpl apiSetting = sharedPrefUtils.getObject("api_setting", ApiSettingImpl.class); // TODO: リフレクションつかって一括でやる?(プロパティ数があまりにも増えるなら?), 三項演算子やめる?, デフォルト値の設定方法を改善する if (apiSetting != null) { - apiBaseUrl = apiSetting.getApiBaseUrl() == null ? "https://kidshift-beta.nem.one/" : - Objects.equals(apiSetting.getApiBaseUrl(), "") ? "https://kidshift-beta.nem.one/" : apiSetting.getApiBaseUrl(); + apiBaseUrl = apiSetting.apiBaseUrl.isEmpty() ? "https://kidshift-beta.nem.one/" : apiSetting.apiBaseUrl; } } @@ -65,28 +64,46 @@ public class UserSettingsImpl implements UserSettings { public class TaskSettingImpl implements UserSettings.TaskSetting { + transient SharedPrefUtils sharedPrefUtils; int defaultIconColor; + String defaultIconEmoji; + + TaskSettingImpl() { + sharedPrefUtils = sharedPrefUtilsFactory.create("user_settings"); + TaskSettingImpl taskSetting = sharedPrefUtils.getObject("task_setting", TaskSettingImpl.class); + if (taskSetting != null) { + defaultIconColor = taskSetting.getDefaultIconColor() == 0 ? 0 : taskSetting.getDefaultIconColor(); + defaultIconEmoji = taskSetting.getDefaultIconEmoji().isEmpty() ? "" : taskSetting.getDefaultIconEmoji(); + } + } + + private void save() { + sharedPrefUtils.saveObject("task_setting", this); + } + @Override public int getDefaultIconColor() { - return 0; + return defaultIconColor; } @Override public void setDefaultIconColor(int color) { - + defaultIconColor = color; + save(); } @Override public String getDefaultIconEmoji() { - return ""; + return defaultIconEmoji; } @Override public void setDefaultIconEmoji(String emoji) { - + defaultIconEmoji = emoji; + save(); } } } From 3cc5b2ed787478d399f59e8cecc3983e9bbbf9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:07:37 +0900 Subject: [PATCH 14/41] =?UTF-8?q?=E3=83=90=E3=82=A4=E3=83=B3=E3=83=89?= =?UTF-8?q?=E5=88=87=E3=82=8A=E6=9B=BF=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nem/kidshift/data/modules/UserSettingsDummyModule.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java b/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java index 037555f..ee20969 100644 --- a/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java +++ b/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java @@ -6,11 +6,15 @@ import dagger.hilt.InstallIn; import dagger.hilt.android.components.FragmentComponent; import one.nem.kidshift.data.UserSettings; import one.nem.kidshift.data.impl.UserSettingsDummyImpl; +import one.nem.kidshift.data.impl.UserSettingsImpl; @Module @InstallIn(FragmentComponent.class) abstract public class UserSettingsDummyModule { +// @Binds +// abstract UserSettings bindUserSettings(UserSettingsDummyImpl userSettingsDummyImpl); + @Binds - abstract UserSettings bindUserSettings(UserSettingsDummyImpl userSettingsDummyImpl); + public abstract UserSettings bindUserSettings(UserSettingsImpl userSettingsImpl); } From d4aed1bb4b0ddc17f81582d807685e508e0f4974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:08:03 +0900 Subject: [PATCH 15/41] =?UTF-8?q?Singleton=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/data/modules/UserSettingsDummyModule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java b/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java index ee20969..79b9674 100644 --- a/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java +++ b/data/src/main/java/one/nem/kidshift/data/modules/UserSettingsDummyModule.java @@ -4,12 +4,13 @@ import dagger.Binds; import dagger.Module; import dagger.hilt.InstallIn; import dagger.hilt.android.components.FragmentComponent; +import dagger.hilt.components.SingletonComponent; import one.nem.kidshift.data.UserSettings; import one.nem.kidshift.data.impl.UserSettingsDummyImpl; import one.nem.kidshift.data.impl.UserSettingsImpl; @Module -@InstallIn(FragmentComponent.class) +@InstallIn(SingletonComponent.class) abstract public class UserSettingsDummyModule { // @Binds From 164506647e8ff0a8fd23ce1809495384db033ff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Fri, 21 Jun 2024 12:12:09 +0900 Subject: [PATCH 16/41] =?UTF-8?q?Object=E3=81=8C=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=81=AB=E3=83=87=E3=83=95=E3=82=A9=E3=83=AB?= =?UTF-8?q?=E3=83=88=E5=80=A4=E3=82=92=E5=BE=A9=E5=85=83=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/kidshift/data/impl/UserSettingsImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index fcaf33f..a3c6726 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -43,6 +43,8 @@ public class UserSettingsImpl implements UserSettings { // TODO: リフレクションつかって一括でやる?(プロパティ数があまりにも増えるなら?), 三項演算子やめる?, デフォルト値の設定方法を改善する if (apiSetting != null) { apiBaseUrl = apiSetting.apiBaseUrl.isEmpty() ? "https://kidshift-beta.nem.one/" : apiSetting.apiBaseUrl; + } else { + apiBaseUrl = "https://kidshift-beta.nem.one/"; } } @@ -77,6 +79,9 @@ public class UserSettingsImpl implements UserSettings { if (taskSetting != null) { defaultIconColor = taskSetting.getDefaultIconColor() == 0 ? 0 : taskSetting.getDefaultIconColor(); defaultIconEmoji = taskSetting.getDefaultIconEmoji().isEmpty() ? "" : taskSetting.getDefaultIconEmoji(); + } else { + defaultIconColor = 0; + defaultIconEmoji = ""; } } From 5be55ccb8d32317c4003286fbb52d2f4f793f134 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:14:58 +0900 Subject: [PATCH 17/41] =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=83=86=E3=82=A3?= =?UTF-8?q?=E3=83=93=E3=83=86=E3=82=A3=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 5 +++- .../java/one/nem/kidshift/LoginActivity.java | 24 +++++++++++++++++++ app/src/main/res/layout/activity_login.xml | 10 ++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/one/nem/kidshift/LoginActivity.java create mode 100644 app/src/main/res/layout/activity_login.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 03435ca..3a3d6ab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> + diff --git a/app/src/main/java/one/nem/kidshift/LoginActivity.java b/app/src/main/java/one/nem/kidshift/LoginActivity.java new file mode 100644 index 0000000..eace73d --- /dev/null +++ b/app/src/main/java/one/nem/kidshift/LoginActivity.java @@ -0,0 +1,24 @@ +package one.nem.kidshift; + +import android.os.Bundle; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class LoginActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_login); + 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; + }); + } +} \ 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 new file mode 100644 index 0000000..65243fb --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From 2072c1318862d6387e916e1de50dafef260aced6 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:19:09 +0900 Subject: [PATCH 18/41] =?UTF-8?q?=E4=BB=AE=E3=83=AC=E3=82=A4=E3=82=A2?= =?UTF-8?q?=E3=82=A6=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/activity_login.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 65243fb..eabdabd 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -7,4 +7,13 @@ android:layout_height="match_parent" tools:context=".LoginActivity"> + \ No newline at end of file From 2c8172ede5a97797603f8e9c6c7ca25e2abeb9d6 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:20:22 +0900 Subject: [PATCH 19/41] =?UTF-8?q?isLoggedIn=E3=82=92=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=BF=E3=83=95=E3=82=A7=E3=83=BC=E3=82=B9=E3=81=AB=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/src/main/java/one/nem/kidshift/data/UserSettings.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index 517306f..5538da1 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -5,6 +5,11 @@ public interface UserSettings { ApiSetting getApiSetting(); TaskSetting getTaskSetting(); + interface AppCommon { + boolean isLoggedIn(); + void setLoggedIn(boolean loggedIn); + } + interface ApiSetting { String getApiBaseUrl(); void setApiBaseUrl(String url); From 838505f7da12f3611cff0dad7c0bafb38af32f0b Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:21:09 +0900 Subject: [PATCH 20/41] =?UTF-8?q?Getter=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/src/main/java/one/nem/kidshift/data/UserSettings.java | 1 + 1 file changed, 1 insertion(+) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index 5538da1..aba7cb4 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -4,6 +4,7 @@ public interface UserSettings { ApiSetting getApiSetting(); TaskSetting getTaskSetting(); + AppCommon getAppCommon(); interface AppCommon { boolean isLoggedIn(); From 698644c1936d959c7b405bf459ef6a81f93fdb18 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:22:55 +0900 Subject: [PATCH 21/41] =?UTF-8?q?=E5=91=BD=E5=90=8D=E4=BF=AE=E6=AD=A3,=20i?= =?UTF-8?q?mpl=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/data/UserSettings.java | 4 +- .../kidshift/data/impl/UserSettingsImpl.java | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/data/src/main/java/one/nem/kidshift/data/UserSettings.java b/data/src/main/java/one/nem/kidshift/data/UserSettings.java index aba7cb4..59bff50 100644 --- a/data/src/main/java/one/nem/kidshift/data/UserSettings.java +++ b/data/src/main/java/one/nem/kidshift/data/UserSettings.java @@ -4,9 +4,9 @@ public interface UserSettings { ApiSetting getApiSetting(); TaskSetting getTaskSetting(); - AppCommon getAppCommon(); + AppCommonSetting getAppCommon(); - interface AppCommon { + interface AppCommonSetting { boolean isLoggedIn(); void setLoggedIn(boolean loggedIn); } diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java index a3c6726..292b62d 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsImpl.java @@ -30,6 +30,44 @@ public class UserSettingsImpl implements UserSettings { return new TaskSettingImpl(); } + @Override + public AppCommonSetting getAppCommon() { + return new AppCommonSettingImpl(); + } + + public class AppCommonSettingImpl implements UserSettings.AppCommonSetting { + + transient + SharedPrefUtils sharedPrefUtils; + + boolean loggedIn; + + AppCommonSettingImpl() { + sharedPrefUtils = sharedPrefUtilsFactory.create("user_settings"); + AppCommonSettingImpl appCommonSetting = sharedPrefUtils.getObject("app_common_setting", AppCommonSettingImpl.class); + if (appCommonSetting != null) { + loggedIn = appCommonSetting.isLoggedIn(); + } else { + loggedIn = false; + } + } + + private void save() { + sharedPrefUtils.saveObject("app_common_setting", this); + } + + @Override + public boolean isLoggedIn() { + return loggedIn; + } + + @Override + public void setLoggedIn(boolean loggedIn) { + this.loggedIn = loggedIn; + save(); + } + } + public class ApiSettingImpl implements UserSettings.ApiSetting { transient From 701dbd6f3d08ce1b45778245a2dd4a7dae318007 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:26:51 +0900 Subject: [PATCH 22/41] =?UTF-8?q?=E4=BE=9D=E5=AD=98=E9=96=A2=E4=BF=82?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index a4d2725..07f658a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,6 +45,8 @@ dependencies { implementation project(':feature:child') implementation project(':feature:setting') + implementation project(':data') + implementation project(':shared') implementation project(':utils') From 9d5242f332bf4d52e9d53b14c46f2ee819a64715 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:30:03 +0900 Subject: [PATCH 23/41] =?UTF-8?q?Dummy=E5=81=B4=E3=81=AB=E3=82=82=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=82=92=E9=81=A9=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/data/impl/UserSettingsDummyImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java index 2386b07..7f3c7d9 100644 --- a/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java +++ b/data/src/main/java/one/nem/kidshift/data/impl/UserSettingsDummyImpl.java @@ -18,6 +18,11 @@ public class UserSettingsDummyImpl implements UserSettings { return new TaskSettingImpl(); } + @Override + public AppCommonSetting getAppCommon() { + return null; + } + @Override public UserSettings.ApiSetting getApiSetting() { return new ApiSettingImpl(); From 57a1c7fccc486e4ddb292591146689c9bb9773c7 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:30:42 +0900 Subject: [PATCH 24/41] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=83=95=E3=83=A9=E3=82=B0=E3=81=8C=E7=AB=8B=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=A8=E3=81=8D=E3=81=AB=E3=83=AD=E3=82=B0?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2=E3=82=92=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=83=86=E3=83=B3=E3=83=88=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/one/nem/kidshift/MainActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/one/nem/kidshift/MainActivity.java b/app/src/main/java/one/nem/kidshift/MainActivity.java index a7c2f4b..13051e0 100644 --- a/app/src/main/java/one/nem/kidshift/MainActivity.java +++ b/app/src/main/java/one/nem/kidshift/MainActivity.java @@ -1,5 +1,6 @@ package one.nem.kidshift; +import android.content.Intent; import android.os.Bundle; import androidx.activity.EdgeToEdge; @@ -17,6 +18,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView; import javax.inject.Inject; import dagger.hilt.android.AndroidEntryPoint; +import one.nem.kidshift.data.UserSettings; import one.nem.kidshift.utils.KSLogger; @AndroidEntryPoint @@ -25,6 +27,9 @@ public class MainActivity extends AppCompatActivity { @Inject KSLogger ksLogger; + @Inject + UserSettings userSettings; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -51,5 +56,15 @@ public class MainActivity extends AppCompatActivity { } catch (Exception e) { e.printStackTrace(); } + + // Check logged in + if (userSettings.getAppCommon().isLoggedIn()) { + ksLogger.info("User is logged in!"); + } else { + ksLogger.info("User is not logged in!"); + + Intent intent = new Intent(this, LoginActivity.class); + startActivity(intent); + } } } \ No newline at end of file From 3db54740982f80fa6d299feed1b3c78c5b424443 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:36:46 +0900 Subject: [PATCH 25/41] =?UTF-8?q?Retrofit=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 +++ gradle/libs.versions.toml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 07f658a..b0fd102 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,4 +59,7 @@ dependencies { implementation libs.navigation.fragment implementation libs.navigation.ui implementation libs.navigation.dynamic.features.fragment + + // Retrofit + implementation libs.retrofit } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8278c18..4bd2fd7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,6 +9,7 @@ material = "1.12.0" activity = "1.9.0" constraintlayout = "2.1.4" nav = "2.7.7" +retrofit = "2.11.0" [libraries] gson = { module = "com.google.code.gson:gson", version.ref = "gson" } @@ -26,6 +27,7 @@ com-google-dagger-hilt-compiler = { group="com.google.dagger", name="hilt-compil navigation-fragment = { group="androidx.navigation", name="navigation-fragment", version.ref="nav"} navigation-ui = { group="androidx.navigation", name="navigation-ui", version.ref="nav"} navigation-dynamic-features-fragment = { group="androidx.navigation", name="navigation-dynamic-features-fragment", version.ref="nav"} +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } From 273c401eaacef97e296688d2afe5a54492107c35 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:38:22 +0900 Subject: [PATCH 26/41] =?UTF-8?q?gson-converter=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + gradle/libs.versions.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index b0fd102..9395665 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,4 +62,5 @@ dependencies { // Retrofit implementation libs.retrofit + implementation libs.converter.gson } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4bd2fd7..932a232 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,6 +12,7 @@ nav = "2.7.7" retrofit = "2.11.0" [libraries] +converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" } gson = { module = "com.google.code.gson:gson", version.ref = "gson" } junit = { group = "junit", name = "junit", version.ref = "junit" } ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } From f1975288c4f291b79a0fd72cdec880957189c4b4 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:42:45 +0900 Subject: [PATCH 27/41] add depend --- data/build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/build.gradle b/data/build.gradle index 931755b..6d247a4 100644 --- a/data/build.gradle +++ b/data/build.gradle @@ -43,4 +43,8 @@ dependencies { implementation project(':model') implementation project(':utils') + + // Retrofit + implementation libs.retrofit + implementation libs.converter.gson } \ No newline at end of file From 13befb30d4a18f03e6dffbb60364b4fcf970e848 Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:48:57 +0900 Subject: [PATCH 28/41] =?UTF-8?q?Service=E5=AE=9A=E7=BE=A9=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kidshift/data/retrofit/KidShiftApiService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java 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 new file mode 100644 index 0000000..c5c24d9 --- /dev/null +++ b/data/src/main/java/one/nem/kidshift/data/retrofit/KidShiftApiService.java @@ -0,0 +1,14 @@ +package one.nem.kidshift.data.retrofit; + +import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginRequest; +import one.nem.kidshift.data.retrofit.model.parent.auth.ParentLoginResponse; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + +public interface KidShiftApiService { + + @POST("/parent/auth/login") + Call parentLogin(@Body ParentLoginRequest request); + +} From a5da6c4592773f38fe39d7d9a0e825a64165854a Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:49:05 +0900 Subject: [PATCH 29/41] =?UTF-8?q?ParentLoginRequest=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/parent/auth/ParentLoginRequest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginRequest.java 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/ParentLoginRequest.java new file mode 100644 index 0000000..5575d28 --- /dev/null +++ b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginRequest.java @@ -0,0 +1,27 @@ +package one.nem.kidshift.data.retrofit.model.parent.auth; + +public class ParentLoginRequest { + private String email; + private String password; + + public ParentLoginRequest(String email, String password) { + this.email = email; + this.password = password; + } + + public String getEmail() { + return email; + } + + public String getPassword() { + return password; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } +} From 750f30ff67ef885e7859559f66cfcad4fdf4005a Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:49:50 +0900 Subject: [PATCH 30/41] =?UTF-8?q?ParentLoginResponse=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/parent/auth/ParentLoginResponse.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginResponse.java 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/ParentLoginResponse.java new file mode 100644 index 0000000..0df582d --- /dev/null +++ b/data/src/main/java/one/nem/kidshift/data/retrofit/model/parent/auth/ParentLoginResponse.java @@ -0,0 +1,17 @@ +package one.nem.kidshift.data.retrofit.model.parent.auth; + +public class ParentLoginResponse { + private String accessToken; + + public ParentLoginResponse(String accessToken) { + this.accessToken = accessToken; + } + + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } +} From 338f6460b5bd52dbf1ebc2842f5c530294cd95ed Mon Sep 17 00:00:00 2001 From: rca Date: Sat, 22 Jun 2024 15:55:24 +0900 Subject: [PATCH 31/41] =?UTF-8?q?=E6=9A=AB=E5=AE=9A=E3=83=AC=E3=82=A4?= =?UTF-8?q?=E3=82=A2=E3=82=A6=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/activity_login.xml | 35 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index eabdabd..40ee39c 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -7,13 +7,38 @@ android:layout_height="match_parent" tools:context=".LoginActivity"> - + app:layout_constraintTop_toTopOf="parent"> + + + + + + + +