diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef3..d2af605 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,6 +4,14 @@ diff --git a/app/build.gradle b/app/build.gradle index 1836d13..005e609 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,6 +26,9 @@ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + buildFeatures { + viewBinding true + } } dependencies { @@ -34,6 +37,8 @@ implementation libs.material implementation libs.activity implementation libs.constraintlayout + implementation libs.legacy.support.v4 + implementation libs.recyclerview testImplementation libs.junit androidTestImplementation libs.ext.junit androidTestImplementation libs.espresso.core diff --git a/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java index e04a4c8..77c9cda 100644 --- a/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java @@ -3,9 +3,12 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import android.util.Log; @@ -16,126 +19,100 @@ import android.widget.RadioGroup; import android.widget.Toast; +import com.example.citrusclient.Citrus; import com.example.citrusclient.R; -/** - * A simple {@link Fragment} subclass. - * Use the {@link BookColorDialogFragment#newInstance} factory method to - * create an instance of this fragment. - */ -public class BookColorDialogFragment extends Fragment { - private RadioGroup radioGroupColors; +public class BookColorDialogFragment extends DialogFragment { + private Citrus citrus; - // TODO: Rename parameter arguments, choose names that match - // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String ARG_PARAM1 = "param1"; - private static final String ARG_PARAM2 = "param2"; + CreateBookFragment target; - // TODO: Rename and change types of parameters - private String mParam1; - private String mParam2; - - public BookColorDialogFragment() { - // Required empty public constructor + BookColorDialogFragment(CreateBookFragment fr){ + target=fr; } - - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment BookColorDialogFragment. - */ - // TODO: Rename and change types and number of parameters - public static BookColorDialogFragment newInstance(String param1, String param2) { - BookColorDialogFragment fragment = new BookColorDialogFragment(); - Bundle args = new Bundle(); - args.putString(ARG_PARAM1, param1); - args.putString(ARG_PARAM2, param2); - fragment.setArguments(args); - return fragment; - } - + @NonNull @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); - mParam2 = getArguments().getString(ARG_PARAM2); - } - } + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + // ダイアログを生成 + Dialog dialog = new Dialog(requireContext()); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.fragment_book_color_dialog); - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_book_color_dialog, container, false); - } + RadioGroup rg = dialog.findViewById(R.id.radioGroupColors); - int selected = 0; -// @Override - - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); //親クラスである Fragment の onViewCreated() メソッドを呼び出す - view.findViewById(R.id.buttonCancel).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); - } - }); - - radioGroupColors = view.findViewById(R.id.radioGroupColors); - radioGroupColors.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + // ラジオグループのチェック状態変更リスナーを設定 + rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { - // ラジオボタンが選択された時の処理 - RadioButton checkedRadioButton = group.findViewById(checkedId); - if (checkedRadioButton != null && checkedRadioButton.isChecked()) { - String selectedColor = checkedRadioButton.getText().toString(); - radioGroupColors.findViewById(R.id.radioButtonSprout).setOnClickListener(new View.OnClickListener() { // - @Override - public void onClick(View view) { - ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); - } - }); - // 選択された色に応じた処理をここに記述する - // 例えば、選択された色をログに出力する - Log.d("ColorSelection", "Selected color: " + selectedColor); - } - } - }); + // チェックされたラジオボタンのIDを取得 + RadioButton radioButton = group.findViewById(checkedId); + if (radioButton != null) { + int selectedId = radioButton.getId(); + // ここで選択されたラジオボタンのID(selectedId)を使用して処理を行う + if (selectedId == R.id.radioButtonShadow) { + target.returnValue("#A5A5A5"); + } else if (selectedId == R.id.radioButtonSprout) { + target.returnValue("#A2FA83"); + } else if (selectedId == R.id.radioButtonAqua) { + target.returnValue("#A3F4FF"); + } else if (selectedId == R.id.radioButtonLavender) { + target.returnValue("#B994FF"); + } else if (selectedId == R.id.radioButtonJasmine) { + target.returnValue("#FFFFFF"); + } else if (selectedId == R.id.radioButtonCitrus) { + target.returnValue("#F6C755"); + } else if (selectedId == R.id.radioButtonSakura) { + target.returnValue("#F6C755"); + } - view.findViewById(R.id.buttonOk).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); + } + dismiss(); } }); + return dialog; +// RadioGroup rg = (RadioGroup) view.findViewById(R.id.radioGroupColors); +// +// // ラジオグループのチェック状態変更イベントを登録 +// rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { +// +// // チェック状態変更時に呼び出されるメソッド +// public void onCheckedChanged(RadioGroup group, int checkedId) { +// // チェック状態時の処理を記述 +// // チェックされたラジオボタンオブジェクトを取得 +// RadioButton radioButton = (RadioButton) view.findViewById(checkedId); +// } +// }); +// +// Dialog dialog = new Dialog(requireContext()); +// dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); +// +// dialog.setContentView(R.layout.fragment_book_color_dialog); +// +// +// return dialog; } - public Dialog onCreatedDialog(Bundle savedInstanceState){ - final String[] items = {"citrus","sakura","gray"}; - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - return builder.setTitle("色の種類") - .setSingleChoiceItems(items, selected, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int which) { - selected = which; - } - } - ) - .setPositiveButton("OK", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - Toast.makeText(getActivity(),String.format("[%s]が選択されました",items[selected]), - Toast.LENGTH_SHORT).show(); - } - } - ) - .create(); - } + +// final String[] items = {"citrus","sakura","gray"}; +// AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); +// return builder.setTitle("色の種類") +// .setSingleChoiceItems(items, selected, new DialogInterface.OnClickListener() { +// @Override +// public void onClick(DialogInterface dialogInterface, int which) { +// selected = which; +// } +// } +// ) +// .setPositiveButton("OK", new DialogInterface.OnClickListener() { +// @Override +// public void onClick(DialogInterface dialogInterface, int i) { +// Toast.makeText(getActivity(),String.format("[%s]が選択されました",items[selected]), +// Toast.LENGTH_SHORT).show(); +// } +// } +// ) +// .create(); + } \ No newline at end of file diff --git a/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java b/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java index 3ed197e..6f7f10e 100644 --- a/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java @@ -26,6 +26,8 @@ import android.os.Bundle; import android.widget.Button; import android.widget.EditText; +import android.widget.RadioButton; +import android.widget.RadioGroup; import android.widget.TextView; import org.w3c.dom.Text; @@ -89,6 +91,8 @@ return inflater.inflate(R.layout.fragment_create_book, container, false); } + + private String color; @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //親クラスである Fragment の onViewCreated() メソッドを呼び出す @@ -105,6 +109,7 @@ @Override public void onClick(View view2) { EditText editname = (EditText) view.findViewById(R.id.book_name); //本の名前を入力する + Editable bookeditable = editname.getText(); TextView textbookname = (TextView) view.findViewById(R.id.set_book_name); //本の名前が無かったら入力してと表示する @@ -136,7 +141,9 @@ String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); String token = ((Citrus) getActivity().getApplication()).getToken(); - booksViewModel.createBook(accountId, bookname, "#00FF00", true, token); //BooksViewModelを呼び出して本を作る + + + booksViewModel.createBook(accountId, bookname, color, true, token); //BooksViewModelを呼び出して本を作る //画面が本棚に戻る @@ -159,9 +166,17 @@ //色選択をするとダイアログが出てくる view.findViewById(R.id.color_button).setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View view) { - ((MainActivity) getActivity()).showFragment(new BookColorDialogFragment()); + public void onClick(View view2) { +// ((MainActivity) getActivity()).showFragment(new BookColorDialogFragment()); + BookColorDialogFragment bookColorDialogFragment = new BookColorDialogFragment(CreateBookFragment.this); + bookColorDialogFragment.show(getActivity().getSupportFragmentManager(), "simple"); + } }); } + + public void returnValue(String colorIn){ + color = colorIn; + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_book_color_dialog.xml b/app/src/main/res/layout/fragment_book_color_dialog.xml index 2f2164d..89ab6ac 100644 --- a/app/src/main/res/layout/fragment_book_color_dialog.xml +++ b/app/src/main/res/layout/fragment_book_color_dialog.xml @@ -8,21 +8,11 @@ tools:context=".views.BookColorDialogFragment"> - + android:buttonTint="#FFFFFF" + android:text="Jasmine" /> - - - -