diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2179e9b..012205b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> isLoading() { return loading;} public LiveData getError() { return error; } - //新規登録 + //新規登録 enqueueで非同期処理、Callbackで成功失敗の処理、LiveDataに反映 + //サーバーから返ってきた型と合わせないとFailureに流れる public void createUser(String id, String password) { loading.setValue(true); userResource.createUser(id, password).enqueue(new Callback() { @@ -63,7 +74,27 @@ } @Override public void onFailure(Call c, Throwable t) { loading.setValue(false); - error.setValue("ネットワークエラー: " + t.getMessage()); + error.setValue("エラー: " + t.getMessage()); + } + }); + } + + //ログイン + public void login(String id, String password) { + loading.setValue(true); + userResource.login(id, password).enqueue(new Callback() { + @Override public void onResponse(Call c, Response res) { + loading.setValue(false); + if (res.isSuccessful()) { + setValue(res.body()); + userResource.getUser(id); + } else { + error.setValue("ログイン失敗: " + res.code()); + } + } + @Override public void onFailure(Call c, Throwable t) { + loading.setValue(false); + error.setValue("エラー: " + t.getMessage()); } }); } diff --git a/app/src/main/java/com/example/tampopo_client/views/LoginActivity.java b/app/src/main/java/com/example/tampopo_client/views/LoginActivity.java index a72efcb..d34fc94 100644 --- a/app/src/main/java/com/example/tampopo_client/views/LoginActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/LoginActivity.java @@ -1,15 +1,24 @@ package com.example.tampopo_client.views; +import android.content.Intent; import android.os.Bundle; +import android.content.Intent; +import android.view.View; +import android.view.View.OnClickListener; + +import android.widget.Button; 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 androidx.lifecycle.ViewModelProvider; +import com.example.tampopo_client.views.MainActivity; import com.example.tampopo_client.R; public class LoginActivity extends AppCompatActivity { + UserViewModel userViewModel; @Override protected void onCreate(Bundle savedInstanceState) { @@ -21,5 +30,26 @@ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + + Button button_login = (Button) findViewById(R.id.loginbutton); + button_login.setOnClickListener(new OnClickListener(){ + + public void onClick(View v){ + Intent intent = new Intent(LoginActivity.this, MainActivity.class); + startActivity(intent); + + } + }); + + Button button_createaccount = (Button) findViewById(R.id.createaccountbutton); + button_createaccount.setOnClickListener(new OnClickListener(){ + + public void onClick(View v){ + Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); + startActivity(intent); + } + }); + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/eye.png b/app/src/main/res/drawable/eye.png new file mode 100644 index 0000000..0cb343f --- /dev/null +++ b/app/src/main/res/drawable/eye.png Binary files differ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 072e326..15a2dfc 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -5,6 +5,115 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".views.LoginActivity"> + tools:context=".views.LoginActivity" + android:background="#E0F7FA"> + + + + + +