Newer
Older
LessonClient / app / src / main / java / com / example / lessonClient / views / SettingsActivity.java
package com.example.lessonClient.views;

import android.content.Intent;
import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;
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.lessonClient.R;
import com.example.lessonClient.rest.AccountsRest;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;

public class SettingsActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    EdgeToEdge.enable(this);
    setContentView(R.layout.activity_settings);
    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;
    });

    String str_account_id = getIntent().getStringExtra("account_id");
    ((TextView) findViewById(R.id.account_id)).setText(str_account_id);

    //通信の初期化
    Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://10.0.2.2:8080/")
        .addConverterFactory(JacksonConverterFactory.create())
        .build();
    AccountsRest accountsRest = retrofit.create(AccountsRest.class);

    // listボタンを押してlist画面に遷移
    Button button_list = (Button) findViewById(R.id.List);
    button_list.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View view) {
        Intent intent = new Intent(SettingsActivity.this, AccountListActivity.class);
        startActivity(intent);
      }
    });

    // changeボタンを押してメッセージ表示
    Button button_change = (Button) findViewById(R.id.change);

    button_change.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View view) {

        EditText pw = (EditText) findViewById(R.id.password);
        String oldpass = pw.getText().toString().trim();
        EditText newpw = (EditText) findViewById(R.id.newpassword);
        String newpass = newpw.getText().toString().trim();


        Call<Void> call = accountsRest.changePW(str_account_id, newpass, oldpass);
        call.enqueue(new Callback<Void>() {

          @Override
          public void onResponse(Call<Void> call, Response<Void> response) {
            if (response.isSuccessful()) {
              ((TextView) findViewById(R.id.message)).setText("パスワードが変更されました");
            } else {
              ((TextView) findViewById(R.id.message)).setText("パスワードが違います");
            }
          }

          @Override
          public void onFailure(Call<Void> call, Throwable t) {
            ((TextView) findViewById(R.id.message)).setText("Failure");
          }
        });


      }


    });
  }
}