Merge pull request #61 from nitta-lab-2024/LoginActivity
Idはあってるけど、パスワードが間違っているときのエラーー処理の修正
commit 417f8de7d4c106dbc8900afe77e9aa87bc2e7ec1
2 parents 363c0e8 + d0a616a
中野実結 authored on 4 Jul
Showing 2 changed files
View
152
app/src/main/java/com/example/citrusclient/views/LoginActivity.java
package com.example.citrusclient.views;
 
import android.content.Intent;
import android.os.Bundle; //
import android.os.Handler;
import android.view.View;
import android.widget.Button;
 
import android.widget.EditText;
import android.widget.TextView;
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 com.example.citrusclient.Citrus;
import com.example.citrusclient.R;
import com.example.citrusclient.rest.AccountsRest;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
 
public class LoginActivity extends AppCompatActivity {
private Retrofit retrofit;
private AccountsRest accountsRest;
private Citrus citrus;
 
//画面起動時
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
 
// username = findViewById(R.id.username);
// password = findViewById(R.id.password);
// loginButton = findViewById(R.id.loginButton);
//citrusと連携
citrus = (Citrus) this.getApplication();
 
//通信の初期化
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/citrus/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
this.accountsRest = retrofit.create(AccountsRest.class);
 
Button loginButton = (Button)findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener(){
 
public void onClick(View v){
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
//テキストを文字列で認識
EditText editid = (EditText) findViewById(R.id.username);
String id = editid.getText().toString().trim();
EditText editpw = (EditText) findViewById(R.id.password);
String pw = editpw.getText().toString().trim();
final Handler handler = new Handler();
 
//入力欄が空欄の時
if(id.isEmpty() && pw.isEmpty() && id.trim().isEmpty() && pw.trim().isEmpty()){
System.out.println("不適切入力");
((TextView)findViewById(R.id.textView_respons)).setText("適切に入力してください");
 
//Intent intent = new Intent(LoginActivity.this,MainActivity.class);
//startActivity(intent);
 
}else if(!id.isEmpty() && !pw.isEmpty() && !id.trim().isEmpty() && !pw.trim().isEmpty() ){
//入力欄が全て適切に入力された場合の処理
Call<String> call = accountsRest.login(id,pw);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()){
if (!response.body().equals("null")) {
System.out.println("通信成功");
//端末にtoken.id登録
String token = response.body();
citrus.setToken(token);
citrus.setAccountId(id);
 
//画面遷移
handler.post(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent);
}
});
}else{
((TextView)findViewById(R.id.textView_respons)).setText(("パスワードが間違っています"));
 
}
 
}else{
//通信可能(ただしエラーが発生した場合)
//404がPW入力されてないときだけど、前で定義しているからいらないよね..?
System.out.println("通信可能");
if(response.code()==404){
((TextView)findViewById(R.id.textView_respons)).setText(("IDが間違っています"));
}
}
}
//通信失敗
@Override
public void onFailure(Call<String> call, Throwable t) {
System.out.println("通信失敗");
System.out.println(t);
}
});
}
}
});
Button newButton = (Button)findViewById(R.id.newAccount);
newButton.setOnClickListener(new View.OnClickListener(){
View
23
app/src/main/res/layout/activity_login.xml
android:layout_height="match_parent"
android:background="#F1FAEC"
android:gravity="center"
android:orientation="vertical"
android:outlineSpotShadowColor="@color/white"
tools:context=".MainActivity">
 
<!--下の文字-->
 
<Button
android:id="@+id/newAccount"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_marginBottom="88dp"
android:backgroundTint="#0F1010"
android:text="signup"
android:textSize="18sp"
app:cornerRadius="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginButton" />
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.823" />
<Button
android:id="@+id/loginButton"
android:layout_width="300dp"
android:layout_height="55dp"
android:text="Login"
android:textAlignment="center"
android:textColor="#090909"
android:textSize="38sp"
app:layout_constraintBottom_toTopOf="@+id/username"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.6"
app:layout_constraintVertical_bias="0.207"
tools:layout_editor_absoluteX="-16dp" />
<TextView
android:id="@+id/textView_respons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F44336"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.589" />
 
 
</androidx.constraintlayout.widget.ConstraintLayout>