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
|
||||
* @return ChildLoginCodeResponse
|
||||
*/
|
||||
@POST("/parent/child/{id}/login")
|
||||
@GET("/parent/child/{id}/login")
|
||||
@Headers(AuthorizationInterceptor.HEADER_PLACEHOLDER)
|
||||
Call<ChildLoginCodeResponse> issueLoginCode(@Path("id") String id);
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.inputmethodservice.Keyboard;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -15,8 +16,14 @@ import one.nem.kidshift.model.ChildModel;
|
|||
|
||||
public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainViewHolder> {
|
||||
|
||||
public interface LoginButtonCallback {
|
||||
void onLoginButtonClicked(String childId);
|
||||
}
|
||||
|
||||
private List<ChildModel> childDataList;
|
||||
|
||||
private LoginButtonCallback loginButtonCallback;
|
||||
|
||||
SettingAdapter() {
|
||||
|
||||
}
|
||||
|
@ -25,13 +32,19 @@ public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MainView
|
|||
this.childDataList = childDataList;
|
||||
}
|
||||
|
||||
public void setLoginButtonCallback(LoginButtonCallback loginButtonCallback) {
|
||||
this.loginButtonCallback = loginButtonCallback;
|
||||
}
|
||||
|
||||
|
||||
static class MainViewHolder extends RecyclerView.ViewHolder{
|
||||
TextView childname;
|
||||
Button loginButton;
|
||||
|
||||
MainViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
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){
|
||||
ChildModel childData = this.childDataList.get(position);
|
||||
holder.childname.setText(childData.getName());
|
||||
holder.loginButton.setOnClickListener(v -> {
|
||||
if (this.loginButtonCallback != null) {
|
||||
this.loginButtonCallback.onLoginButtonClicked(childData.getId());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,6 +12,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
|
@ -64,9 +65,10 @@ public class SettingMainFragment extends Fragment {
|
|||
|
||||
/**
|
||||
* 親情報を更新する
|
||||
*
|
||||
* @return CompletableFuture<Void>
|
||||
*/
|
||||
private CompletableFuture<Void> updateParentInfo(){
|
||||
private CompletableFuture<Void> updateParentInfo() {
|
||||
return parentData.getParent(new ParentModelCallback() {
|
||||
@Override
|
||||
public void onUnchanged() {
|
||||
|
@ -91,10 +93,11 @@ public class SettingMainFragment extends Fragment {
|
|||
|
||||
/**
|
||||
* 子供情報を更新する
|
||||
*
|
||||
* @return CompletableFuture<Void>
|
||||
*/
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
private CompletableFuture<Void> updateChildInfo(){
|
||||
private CompletableFuture<Void> updateChildInfo() {
|
||||
return childData.getChildList(new ChildModelCallback() {
|
||||
@Override
|
||||
public void onUnchanged() {
|
||||
|
@ -171,19 +174,64 @@ public class SettingMainFragment extends Fragment {
|
|||
|
||||
// ダイアログの設定
|
||||
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());
|
||||
builder.setTitle("ログインコード")
|
||||
.setView(addChildDialogView)
|
||||
.setNeutralButton("閉じる", null);
|
||||
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 builder = new MaterialAlertDialogBuilder(requireContext());
|
||||
builder.setTitle("お子様の名前を入力してください。")
|
||||
MaterialAlertDialogBuilder addChildBuilder = new MaterialAlertDialogBuilder(requireContext());
|
||||
addChildBuilder.setTitle("お子様の名前を入力してください。")
|
||||
.setView(childListView)
|
||||
.setPositiveButton("追加",null)
|
||||
.setNeutralButton("閉じる",null);
|
||||
builder.create();
|
||||
.setPositiveButton("追加", null)
|
||||
.setNeutralButton("閉じる", null);
|
||||
addChildBuilder.create();
|
||||
|
||||
// ダイアログの表示
|
||||
view.findViewById(R.id.addchildname).setOnClickListener(v -> {
|
||||
builder.show();
|
||||
addChildBuilder.show();
|
||||
});
|
||||
|
||||
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