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/Citrus.java b/app/src/main/java/com/example/citrusclient/Citrus.java
index 06c1099..88c8126 100644
--- a/app/src/main/java/com/example/citrusclient/Citrus.java
+++ b/app/src/main/java/com/example/citrusclient/Citrus.java
@@ -2,10 +2,6 @@
import android.app.Application;
-import com.example.citrusclient.models.Book;
-
-import java.util.ArrayList;
-
public class Citrus extends Application {
//データ保存
@@ -15,7 +11,6 @@
private Integer curYear;
private Integer curMonth;
private Integer curDay;
- private ArrayList books;
//getter
public String getToken(){
return token;
@@ -27,7 +22,6 @@
public Integer getCurYear() {return curYear;}
public Integer getCurMouth(){return curMonth;}
public Integer getCurDay(){return curDay;}
- public ArrayList getBook(){return books;}
//setter
public void setToken(String token){
@@ -40,5 +34,4 @@
public void setCurYear(Integer curYear){this.curYear = curYear;}
public void setCurMonth(Integer curMonth){this.curMonth = curMonth;}
public void setCurDay(Integer curDay){this.curDay = curDay;}
- public void setBook(ArrayList books){this.books = books;}
}
diff --git a/app/src/main/java/com/example/citrusclient/rest/PublicBooksRest.java b/app/src/main/java/com/example/citrusclient/rest/PublicBooksRest.java
new file mode 100644
index 0000000..7d600f9
--- /dev/null
+++ b/app/src/main/java/com/example/citrusclient/rest/PublicBooksRest.java
@@ -0,0 +1,22 @@
+package com.example.citrusclient.rest;
+
+import com.example.citrusclient.models.Book;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface PublicBooksRest {
+ @GET("public_books")
+ Call> getAllPublicBooks();
+
+ @GET("public_books/search")
+
+ Call> searchBooksByTitleAndAccount(
+ @Query("search_title") String search_title,
+ @Query("search_account_id") String search_id,
+ @Query("sort_by") int sort
+ );
+}
diff --git a/app/src/main/java/com/example/citrusclient/viewmodels/PublicBooksViewModel.java b/app/src/main/java/com/example/citrusclient/viewmodels/PublicBooksViewModel.java
new file mode 100644
index 0000000..4577601
--- /dev/null
+++ b/app/src/main/java/com/example/citrusclient/viewmodels/PublicBooksViewModel.java
@@ -0,0 +1,77 @@
+package com.example.citrusclient.viewmodels;
+
+import com.example.citrusclient.models.Book;
+import com.example.citrusclient.rest.PublicBooksRest;
+
+import java.util.ArrayList;
+
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+
+public class PublicBooksViewModel extends ViewModel {
+ private final Retrofit retrofit;
+ private final PublicBooksRest publicBooksRest;
+
+ private final MutableLiveData> allBooksLiveData;
+ private final MutableLiveData> searchBooksLiveData;
+
+ public PublicBooksViewModel(){
+ retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/citrus/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ this.publicBooksRest = retrofit.create(PublicBooksRest.class);
+ this.allBooksLiveData = new MutableLiveData<>();
+ this.searchBooksLiveData = new MutableLiveData<>();
+ }
+
+ public MutableLiveData> getAllBooksLiveData(){
+ return this.allBooksLiveData;
+ }
+ public MutableLiveData> getSearchBooksLiveData(){
+ return this.searchBooksLiveData;
+ }
+
+ public void loadAllBooks(){
+ Call> call = publicBooksRest.getAllPublicBooks();
+
+ call.enqueue(new Callback>(){
+ @Override
+ public void onResponse(Call> call, Response>response){
+ if(response.isSuccessful()){
+ ArrayList book = response.body();
+ allBooksLiveData.setValue(book);
+ System.out.println(response.code());
+ }else System.out.println(response.code());
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t){
+ System.out.println("NetWorkError" + t);
+ }
+ });
+ }
+ public void loadSearchBooks(String title,String accountId,int sortBy){
+ Call> call = publicBooksRest.searchBooksByTitleAndAccount(title,accountId,sortBy);
+ call.enqueue(new Callback>(){
+ @Override
+ public void onResponse(Call> call, Response>response){
+ if(response.isSuccessful()){
+ ArrayList book = response.body();
+ allBooksLiveData.setValue(book);
+ System.out.println(response.code());
+ }else System.out.println(response.code());
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t){
+ System.out.println("NetWorkError" + t);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java
new file mode 100644
index 0000000..fe52065
--- /dev/null
+++ b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java
@@ -0,0 +1,118 @@
+package com.example.citrusclient.views;
+
+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;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.Toast;
+
+import com.example.citrusclient.Citrus;
+import com.example.citrusclient.R;
+
+public class BookColorDialogFragment extends DialogFragment {
+ private Citrus citrus;
+
+ CreateBookFragment target;
+
+ BookColorDialogFragment(CreateBookFragment fr){
+ target=fr;
+ }
+ @NonNull
+ @Override
+ 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);
+
+ RadioGroup rg = dialog.findViewById(R.id.radioGroupColors);
+
+ // ラジオグループのチェック状態変更リスナーを設定
+ rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ // チェックされたラジオボタンのIDを取得
+ RadioButton radioButton = group.findViewById(checkedId);
+ if (radioButton != null) {
+ int selectedId = radioButton.getId();
+ // ここで選択されたラジオボタンのID(selectedId)を使用して処理を行う
+ if (selectedId == R.id.radioButtonShadow) {
+ target.returnValue("#D5D5D5");
+ } else if (selectedId == R.id.radioButtonSprout) {
+ target.returnValue("#BEECAE");
+ } else if (selectedId == R.id.radioButtonAqua) {
+ target.returnValue("#BEF7FF");
+ } 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("#FFCBFA");
+ }
+
+ }
+ 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;
+ }
+
+
+// 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/CalendarFragment.java b/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java
index 4fd89f9..cc44f19 100644
--- a/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java
+++ b/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java
@@ -12,6 +12,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
@@ -20,7 +21,9 @@
import com.example.citrusclient.models.Schedule;
import com.example.citrusclient.viewmodels.ScheduleViewModel;
+import java.io.ObjectInputStream;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.List;
/**
@@ -86,22 +89,71 @@
private List scheduleList;
ScheduleViewModel scheduleViewModel;
+ int month;
+
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+
tableLayout = view.findViewById(R.id.calendarlayout);
+ Calendar calendar = Calendar.getInstance();
+ month = calendar.get(Calendar.MONTH) + 1;
+ int date = calendar.get(Calendar.DATE);
+ int lastdate = calendar.getActualMaximum(Calendar.DATE);
+ int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+
+ Button nextMonth = view.findViewById(R.id.nextMonth);
+ Button prevMonth = view.findViewById(R.id.prevMonth);
+ TextView curMonth = view.findViewById(R.id.month);
+ curMonth.setText("" + month + "月");
+ nextMonth.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ month++;
+ if(month > 12){
+ month = 1;
+ }
+ curMonth.setText("" + month + "月");
+ }
+ });
+
+ prevMonth.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ month--;
+ if(month < 1) {
+ month = 12;
+ }
+ curMonth.setText("" + month + "月");
+ }
+ });
+
+
for(int i = 0; i < 6; i++) {
tableRows[i] = (TableRow) tableLayout.getChildAt(i);
for(int j = 0; j < 7; j++) {
- RecyclerView recyclerView = new RecyclerView(requireContext());//RecyclerView.LayoutParams.MATCH_PARENT
+ LinearLayout layout = new LinearLayout(requireContext());
+ layout.setOrientation(LinearLayout.VERTICAL);
+
+ TextView textView = new TextView(requireContext());
+ textView.setText("" + i);
+
+ RecyclerView recyclerView = new RecyclerView(requireContext());
recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext()));
- recyclerView.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
+ recyclerView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
List schedules = new ArrayList<>();
schedules.add(new Schedule("abc", "3232", "yyyy", 0, 1));
+ schedules.add(new Schedule("123", "3232", "yyyy", 0, 2));
recyclerView.setAdapter(new MyScheduleAdapter(schedules));
- TableRow.LayoutParams p = (TableRow.LayoutParams) recyclerView.getLayoutParams();
+ LinearLayout.LayoutParams p = (LinearLayout.LayoutParams) recyclerView.getLayoutParams();
p.weight = 1;
- tableRows[i].addView(recyclerView);
+
+ layout.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
+ TableRow.LayoutParams p2 = (TableRow.LayoutParams) layout.getLayoutParams();
+ p2.weight = 1;
+ layout.addView(textView);
+ layout.addView(recyclerView);
+ tableRows[i].addView(layout);
}
}
}
@@ -119,13 +171,13 @@
}
@NonNull
@Override
- public MyScheduleAdapter.MyScheduleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ public MyScheduleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a_calendar_schedule, parent, false);
return new MyScheduleViewHolder(view);
}
@Override
- public void onBindViewHolder(@NonNull MyScheduleAdapter.MyScheduleViewHolder holder, int position) {
+ public void onBindViewHolder(@NonNull MyScheduleViewHolder holder, int position) {
Schedule scheduleData = this.scheduleList.get(position);
holder.scheduleText.setText(scheduleData.getTitle());
}
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 666efc0..353d6b8 100644
--- a/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java
+++ b/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java
@@ -1,6 +1,9 @@
package com.example.citrusclient.views;
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;
@@ -24,6 +27,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;
@@ -87,6 +92,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() メソッドを呼び出す
@@ -98,12 +105,16 @@
//((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); //本の名前が無かったら入力してと表示する
+
+
if (bookeditable == null) { //本の名前がなかったら
System.out.println("本の名前を入力してください");
@@ -125,24 +136,23 @@
}
} else {
System.out.println(bookname);
-// String textbook = textbookname.getText().toString().trim();
- //本を保存するコードを書く?
+ // String textbook = textbookname.getText().toString().trim();
+ String accountId = ((Citrus) getActivity().getApplication()).getAccountId();
+ String token = ((Citrus) getActivity().getApplication()).getToken();
-
-
-
- booksViewModel.createBook("bird",bookname,"#00FF00",true,"xyz"); //BooksViewModelを呼び出して本を作る
+ if(color == null){
+ color = "#D5D5D5"; //色が選択されてなかったらグレー
+ }
+ booksViewModel.createBook(accountId, bookname, color, true, token); //BooksViewModelを呼び出して本を作る
//画面が本棚に戻る
-
-
-
((MainActivity) getActivity()).showFragment(new MyBookshelfFragment()); //本棚に戻る
}
}
}
});
+ //キャンセルボタンの処理
view.findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -150,5 +160,28 @@
}
});
+ //色選択をするとダイアログが出てくる
+ 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");
+
+ }
+ });
+ }
+
+ 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));
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/citrusclient/views/MainActivity.java b/app/src/main/java/com/example/citrusclient/views/MainActivity.java
index ea3db46..4f26114 100644
--- a/app/src/main/java/com/example/citrusclient/views/MainActivity.java
+++ b/app/src/main/java/com/example/citrusclient/views/MainActivity.java
@@ -26,7 +26,6 @@
public class MainActivity extends AppCompatActivity {
- BooksViewModel booksViewModel;
Citrus citrus;
@Override
@@ -43,15 +42,7 @@
citrus = (Citrus) getApplication();
- booksViewModel = new ViewModelProvider(this).get(BooksViewModel.class);
- booksViewModel.getBookLiveData().observe(this, new Observer>() {
- @Override
- public void onChanged(HashMap integerBookHashMap) {
- citrus.setBook(new ArrayList<>(integerBookHashMap.values()));
- }
- });
-
- showFragment(new MyBookshelfFragment());
+// showFragment(new HomeFragment());
setNavViewEvent();
@@ -66,6 +57,8 @@
private void setNavViewEvent(){
BottomNavigationView navView = findViewById(R.id.bottomNavigationView);
+ navView.setSelectedItemId(R.id.home);
+ showFragment(new HomeFragment());
navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java
index 606bfbf..291daab 100644
--- a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java
+++ b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java
@@ -128,12 +128,16 @@
booksViewModel.getBookLiveData().observe(getViewLifecycleOwner(), new Observer>() {
@Override
public void onChanged(HashMap integerBookHashMap) {
- bookList = new ArrayList<>(integerBookHashMap.values());
+ if(integerBookHashMap != null){
+ bookList = new ArrayList<>(integerBookHashMap.values());
+ }else{
+ bookList = new ArrayList<>();
+ }
bookAdapter.setBooks(bookList);
}
});
- booksViewModel.loadBooks("bird", "xyz");
+ booksViewModel.loadBooks(accountId, token);
}
@@ -166,9 +170,24 @@
public void onBindViewHolder(@NonNull MyBookViewHolder holder, int position) {
Book bookData = this.bookList.get(position);
holder.bookButton.setText(bookData.getTitle());
- int red = Integer.parseInt(bookData.getColor().substring(1, 3), 16);
- int green = Integer.parseInt(bookData.getColor().substring(3, 5), 16);
- int blue = Integer.parseInt(bookData.getColor().substring(5, 7), 16);
+ int red;
+ int green;
+ int blue;
+ if (bookData.getColor() == null){
+ red = 255;
+ green = 255;
+ blue = 255;
+ }
+ else if(bookData.getColor().length() < 7){
+ red = 255;
+ green = 255;
+ blue = 255;
+ }else{
+ red = Integer.parseInt(bookData.getColor().substring(1, 3), 16);
+ green = Integer.parseInt(bookData.getColor().substring(3, 5), 16);
+ blue = Integer.parseInt(bookData.getColor().substring(5, 7), 16);
+ }
+
holder.bookButton.setBackgroundColor(Color.rgb(red, green, blue));
holder.bookButton.setTextColor(Color.rgb(255 - red, 255 - green, 255 - blue));
holder.bookButton.setOnClickListener(v -> {
diff --git a/app/src/main/res/layout/a_calendar_schedule.xml b/app/src/main/res/layout/a_calendar_schedule.xml
index dd2b441..6b230e3 100644
--- a/app/src/main/res/layout/a_calendar_schedule.xml
+++ b/app/src/main/res/layout/a_calendar_schedule.xml
@@ -2,13 +2,14 @@
+ android:layout_height="wrap_content">
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index df65e07..785db3b 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -28,9 +28,10 @@
android:background="#BAE4C3"
android:minHeight="50dp"
app:itemHorizontalTranslationEnabled="false"
- app:itemIconSize="50dp"
+ app:itemIconSize="30dp"
app:itemIconTint="@drawable/bottom_navigation_item_state"
- app:itemPadding="100dp"
+ app:itemPaddingBottom="0dp"
+ app:itemPaddingTop="-50dp"
app:itemTextAppearanceActiveBoldEnabled="true"
app:itemTextColor="@drawable/bottom_navigation_item_state"
app:menu="@menu/bottom_navigation_item" />
diff --git a/app/src/main/res/layout/fragment_book_color_dialog.xml b/app/src/main/res/layout/fragment_book_color_dialog.xml
new file mode 100644
index 0000000..7f7c250
--- /dev/null
+++ b/app/src/main/res/layout/fragment_book_color_dialog.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_calendar.xml b/app/src/main/res/layout/fragment_calendar.xml
index d19d10e..4de690d 100644
--- a/app/src/main/res/layout/fragment_calendar.xml
+++ b/app/src/main/res/layout/fragment_calendar.xml
@@ -8,106 +8,104 @@
tools:context=".views.CalendarFragment">
+
+
+ android:textSize="24sp" />
+ android:layout_marginTop="120dp">
+ android:layout_weight="1"
+ android:text="日"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="月"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="火"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="水"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="木"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="金"
+ android:textAlignment="center" />
+ android:layout_weight="1"
+ android:text="土"
+ android:textAlignment="center" />
-
-
+ android:layout_marginTop="140dp">
+ android:layout_weight="1" />
+ android:layout_weight="1" />
+ android:layout_height="match_parent"
+ android:background="#FFFFFF">