Merge pull request '設定のLoginDialogやりました' (#123) from feature/settingDialog into main
Reviewed-on: #123
This commit is contained in:
commit
40fafb1d05
|
@ -122,7 +122,7 @@ public interface KidShiftApiService {
|
||||||
* @param id 子供ID
|
* @param id 子供ID
|
||||||
* @return ChildLoginCodeResponse
|
* @return ChildLoginCodeResponse
|
||||||
*/
|
*/
|
||||||
@POST("/parent/child/{id}/login")
|
@GET("/parent/child/{id}/login")
|
||||||
@Headers(AuthorizationInterceptor.HEADER_PLACEHOLDER)
|
@Headers(AuthorizationInterceptor.HEADER_PLACEHOLDER)
|
||||||
Call<ChildLoginCodeResponse> issueLoginCode(@Path("id") String id);
|
Call<ChildLoginCodeResponse> issueLoginCode(@Path("id") String id);
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import android.inputmethodservice.Keyboard;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -15,8 +16,14 @@ import one.nem.kidshift.model.ChildModel;
|
||||||
|
|
||||||
public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainViewHolder> {
|
public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainViewHolder> {
|
||||||
|
|
||||||
|
public interface LoginButtonCallback {
|
||||||
|
void onLoginButtonClicked(String childId);
|
||||||
|
}
|
||||||
|
|
||||||
private List<ChildModel> childDataList;
|
private List<ChildModel> childDataList;
|
||||||
|
|
||||||
|
private LoginButtonCallback loginButtonCallback;
|
||||||
|
|
||||||
SettingAdapter() {
|
SettingAdapter() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,13 +32,19 @@ public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainView
|
||||||
this.childDataList = childDataList;
|
this.childDataList = childDataList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLoginButtonCallback(LoginButtonCallback loginButtonCallback) {
|
||||||
|
this.loginButtonCallback = loginButtonCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static class MainViewHolder extends RecyclerView.ViewHolder{
|
static class MainViewHolder extends RecyclerView.ViewHolder{
|
||||||
TextView childname;
|
TextView childname;
|
||||||
|
Button loginButton;
|
||||||
|
|
||||||
MainViewHolder(@NonNull View itemView) {
|
MainViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
childname = itemView.findViewById(R.id.childname);
|
childname = itemView.findViewById(R.id.childname);
|
||||||
|
loginButton = itemView.findViewById(R.id.loginButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,6 +59,11 @@ public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainView
|
||||||
public void onBindViewHolder(@NonNull MainViewHolder holder, int position){
|
public void onBindViewHolder(@NonNull MainViewHolder holder, int position){
|
||||||
ChildModel childData = this.childDataList.get(position);
|
ChildModel childData = this.childDataList.get(position);
|
||||||
holder.childname.setText(childData.getName());
|
holder.childname.setText(childData.getName());
|
||||||
|
holder.loginButton.setOnClickListener(v -> {
|
||||||
|
if (this.loginButtonCallback != null) {
|
||||||
|
this.loginButtonCallback.onLoginButtonClicked(childData.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -12,6 +12,7 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
@ -64,6 +65,7 @@ public class SettingMainFragment extends Fragment {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 親情報を更新する
|
* 親情報を更新する
|
||||||
|
*
|
||||||
* @return CompletableFuture<Void>
|
* @return CompletableFuture<Void>
|
||||||
*/
|
*/
|
||||||
private CompletableFuture<Void> updateParentInfo() {
|
private CompletableFuture<Void> updateParentInfo() {
|
||||||
|
@ -91,6 +93,7 @@ public class SettingMainFragment extends Fragment {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子供情報を更新する
|
* 子供情報を更新する
|
||||||
|
*
|
||||||
* @return CompletableFuture<Void>
|
* @return CompletableFuture<Void>
|
||||||
*/
|
*/
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
|
@ -172,18 +175,63 @@ public class SettingMainFragment extends Fragment {
|
||||||
// ダイアログの設定
|
// ダイアログの設定
|
||||||
LayoutInflater dialogInflater = requireActivity().getLayoutInflater();
|
LayoutInflater dialogInflater = requireActivity().getLayoutInflater();
|
||||||
View childListView = dialogInflater.inflate(R.layout.add_child_list_dialog, null);
|
View childListView = dialogInflater.inflate(R.layout.add_child_list_dialog, null);
|
||||||
|
View addChildDialogView = dialogInflater.inflate(R.layout.fragment_login_dialog_view, null);
|
||||||
|
|
||||||
|
View childListItemView = inflater.inflate(R.layout.list_item_child_name_list, container, false);
|
||||||
|
|
||||||
|
mainAdapter.setLoginButtonCallback(new SettingAdapter.LoginButtonCallback() {
|
||||||
|
@Override
|
||||||
|
public void onLoginButtonClicked(String childId) {
|
||||||
|
// Toast.makeText(getContext(), "ボタンがクリックされました(" + childId + ")", Toast.LENGTH_LONG).show();
|
||||||
|
int loginCode = childData.issueLoginCode(childId).join();
|
||||||
|
TextView loginCodeTextView = addChildDialogView.findViewById(R.id.loginCode);
|
||||||
|
new StringBuilder(Integer.toString(loginCode)).insert(3, "-");
|
||||||
|
|
||||||
|
loginCodeTextView.setText(
|
||||||
|
new StringBuilder(Integer.toString(loginCode)).insert(3, "-")
|
||||||
|
);
|
||||||
|
|
||||||
//子供の名前追加のダイアログ
|
|
||||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext());
|
||||||
builder.setTitle("お子様の名前を入力してください。")
|
builder.setTitle("ログインコード")
|
||||||
.setView(childListView)
|
.setView(addChildDialogView)
|
||||||
.setPositiveButton("追加",null)
|
|
||||||
.setNeutralButton("閉じる", null);
|
.setNeutralButton("閉じる", null);
|
||||||
builder.create();
|
builder.create();
|
||||||
|
|
||||||
|
// childListItemView.findViewById(R.id.loginButton).setOnClickListener(v -> {
|
||||||
|
builder.show();
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// int loginCode = childData.issueLoginCode("543256").join();
|
||||||
|
// TextView loginCodeTextView = addChildDialogView.findViewById(R.id.loginCode);
|
||||||
|
// new StringBuilder(Integer.toString(loginCode)).insert(3,"-");
|
||||||
|
//
|
||||||
|
// loginCodeTextView.setText(
|
||||||
|
// new StringBuilder(Integer.toString(loginCode)).insert(3,"-"));
|
||||||
|
|
||||||
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext());
|
||||||
|
builder.setTitle("ログインコード")
|
||||||
|
.setView(addChildDialogView)
|
||||||
|
.setNeutralButton("閉じる", null);
|
||||||
|
builder.create();
|
||||||
|
//
|
||||||
|
// childListItemView.findViewById(R.id.loginButton).setOnClickListener(v -> {
|
||||||
|
// builder.show();
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
//子供の名前追加のダイアログ
|
||||||
|
MaterialAlertDialogBuilder addChildBuilder = new MaterialAlertDialogBuilder(requireContext());
|
||||||
|
addChildBuilder.setTitle("お子様の名前を入力してください。")
|
||||||
|
.setView(childListView)
|
||||||
|
.setPositiveButton("追加", null)
|
||||||
|
.setNeutralButton("閉じる", null);
|
||||||
|
addChildBuilder.create();
|
||||||
|
|
||||||
// ダイアログの表示
|
// ダイアログの表示
|
||||||
view.findViewById(R.id.addchildname).setOnClickListener(v -> {
|
view.findViewById(R.id.addchildname).setOnClickListener(v -> {
|
||||||
builder.show();
|
addChildBuilder.show();
|
||||||
});
|
});
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/loginCode"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="30dp"
|
||||||
|
android:paddingBottom="25dp"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Display3" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user