package com.example.citrusclient.views;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.DialogInterface;
//import android.support.v4.app.DialogFragment;
import android.content.res.ColorStateList;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import android.text.Editable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.example.citrusclient.Citrus;
import com.example.citrusclient.R;
import com.example.citrusclient.viewmodels.BooksViewModel;
import com.google.android.material.textfield.TextInputEditText;
import android.graphics.Color;//ボタンの色変更
import android.os.Bundle;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;
import org.w3c.dom.Text;
/**
* A simple {@link Fragment} subclass.
* Use the {@link CreateBookFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class CreateBookFragment extends Fragment {
// 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";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public CreateBookFragment() {
// Required empty public constructor
}
/**
* 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 CreateBookFragment.
*/
// TODO: Rename and change types and number of parameters
public static CreateBookFragment newInstance(String param1, String param2) {
CreateBookFragment fragment = new CreateBookFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
BooksViewModel booksViewModel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
booksViewModel = new ViewModelProvider(this).get(BooksViewModel.class);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_create_book, container, false);
}
private String color; //色
//private Switch mSwitch = null;//本の公開状況の切り替えボタン
private boolean publicity;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); //親クラスである Fragment の onViewCreated() メソッドを呼び出す
Citrus citrus = (Citrus)(getActivity().getApplication());
String token = citrus.getToken();
String accountId = citrus.getAccountId();
//ここから書く
// MainActivityにこのフラグメントを設定するした二つのどっちか
//((MainActivity) getContext()).setCreateBookFragment(this);//フラグメントとアクティビティ間での情報のやり取りがあるとき
//((MainActivity) getActivity()).showFragment(new MyBookshelfFragment());
//保存ボタンの処理
view.findViewById(R.id.save_button).setOnClickListener(new View.OnClickListener() {
@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); //本の名前が無かったら入力してと表示する
// boolean isChecked = mSwitch.isChecked(); //本の公開状況
// publicity = isChecked;
if (bookeditable == null) { //本の名前がなかったら
System.out.println("本の名前を入力してください");
if (textbookname != null) {
textbookname.setText("本の名前を入力してください!");
} else {
System.out.println("textbookname が null");
}
} else {
String bookname = bookeditable.toString().trim();
// String bookname = editname.getText().toString().trim();
if (bookname == null || bookname.length() == 0) { //本の名前がなかったら
System.out.println("本の名前を入力してください");
if (textbookname != null) {
textbookname.setText("本の名前を入力してください!");
} else {
System.out.println("textbookname が null");
}
} else {
System.out.println(bookname);
// String textbook = textbookname.getText().toString().trim();
String accountId = ((Citrus) getActivity().getApplication()).getAccountId();
String token = ((Citrus) getActivity().getApplication()).getToken();
if(color == null){
color = "#D5D5D5"; //色が選択されてなかったらグレー
}
booksViewModel.createBook(accountId, bookname, color, publicity, token); //BooksViewModelを呼び出して本を作る
//画面が本棚に戻る
((MainActivity) getActivity()).showFragment(new MyBookshelfFragment()); //本棚に戻る
}
}
}
});
//キャンセルボタンの処理
view.findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((MainActivity) getActivity()).showFragment(new MyBookshelfFragment());
}
});
//色選択をするとダイアログが出てくる
view.findViewById(R.id.color_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view2) {
// ((MainActivity) getActivity()).showFragment(new BookColorDialogFragment());
//CreatebookFragmentにBookColordialogFragmentの情報を渡した状態のコンストラクタをつくる
BookColorDialogFragment bookColorDialogFragment = new BookColorDialogFragment(CreateBookFragment.this);
bookColorDialogFragment.show(getActivity().getSupportFragmentManager(), "simple");
}
});
//View view = getView();
Switch sw = view.findViewById(R.id.switch1);
sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
publicity = true;
} else {
publicity = false;
}
}
});
}
// public void returnPublicity(String pub) {
// View view = getView();
// Switch sw = view.findViewById(R.id.switch1);
// sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// if (isChecked) {
// publicity = true;
// } else {
// publicity = false;
// }
// }
// });
// }
public void returnValue(String colorIn){
color = colorIn;//createBookの変数colorに入る
View view = getView(); // FragmentのView
if (view != null) {
Button colorButton = view.findViewById(R.id.color_button);
int parsedColor = Color.parseColor(color);
colorButton.setBackgroundTintList(ColorStateList.valueOf(parsedColor));
}
}
}