diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e18f7f2..7d7607b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> + + + + + + + diff --git a/app/src/main/java/com/example/citrusclient/Citrus.java b/app/src/main/java/com/example/citrusclient/Citrus.java new file mode 100644 index 0000000..f5577bb --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/Citrus.java @@ -0,0 +1,6 @@ +package com.example.citrusclient; + +import android.app.Application; + +public class Citrus extends Application { +} diff --git a/app/src/main/java/com/example/citrusclient/models/Todo.java b/app/src/main/java/com/example/citrusclient/models/Todo.java new file mode 100644 index 0000000..eb1d9a9 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/models/Todo.java @@ -0,0 +1,40 @@ +package com.example.citrusclient.models; + +public class Todo { + + String accountId; + Integer bookId; + String title; + boolean check; + int year; + int month; + int day; + Integer todoId; + + //セッター + public void setAccountId(String aid) {accountId = aid;} + public void setBookId(Integer bid) {bookId = bid;} + public void setTitle(String t) {title = t;} + public void setCheck(boolean c) {check = c;} + public void setYear(int y) {year = y;} + public void setMonth(int m) {month = m;} + public void setDay(int d) {day = d;} + public void setTodoId(Integer t) {todoId = t;} + + //ゲッター + public String getAccountId() {return accountId;} + public Integer getBookId(){return bookId;} + public String getTitle() {return title;} + + public boolean getCheck() {return check;} + + public int getYear() {return year;} + + public int getMonth() {return month;} + + public int getDay() {return day;} + + public Integer getTodoId() { + return todoId; + } +} diff --git a/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java b/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java index e6b84ff..0941f37 100644 --- a/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java +++ b/app/src/main/java/com/example/citrusclient/rest/AccountsRest.java @@ -1,4 +1,30 @@ package com.example.citrusclient.rest; +import retrofit2.Call; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; +import retrofit2.http.Path; + public interface AccountsRest { + +// @FormUrlEncoded +// @GET("accounts") +// Call getAllAccounts( +// +// ); + + @FormUrlEncoded + @POST("accounts") + Call signup( + @Field("account_id") String account_id, + @Field("password") String password + ); + + @FormUrlEncoded + @POST("accounts/{account_id}/login") + Call login( + @Path("account_id") String account_id, + @Field("password") String password + ); } diff --git a/app/src/main/java/com/example/citrusclient/rest/TodosRest.java b/app/src/main/java/com/example/citrusclient/rest/TodosRest.java index 5e169ab..2e7cf82 100644 --- a/app/src/main/java/com/example/citrusclient/rest/TodosRest.java +++ b/app/src/main/java/com/example/citrusclient/rest/TodosRest.java @@ -1,5 +1,95 @@ package com.example.citrusclient.rest; +import com.example.citrusclient.models.Todo; + +import java.util.ArrayList; +import java.util.HashMap; + + +import retrofit2.Call; +import retrofit2.Response; +import retrofit2.http.DELETE; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.PUT; +import retrofit2.http.Path; +import retrofit2.http.Query; + public interface TodosRest { + @GET("/accounts/{account_id}/books/{book_id}/todos") + Call> getAllTodos( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Query("token") String token + ); + + @GET("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}") + Call> getTodosByMonth( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Query("token") String token + ); + + @GET("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}") + Call> getTodosByDay( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Path("day") Integer day, + @Query("token") String token + ); + + @GET("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}") + Call getTodoById( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Path("day") Integer day, + @Path("todo_id") Integer todoId, + @Query("token") String token + ); + + @FormUrlEncoded + @POST("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}") + Call createTodo( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Path("day") Integer day, + @Field("title") String title, + @Field("token") String token + ); + @FormUrlEncoded + @PUT("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}/check") + Call setCheck( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Path("day") Integer day, + @Path("todo_id") Integer todoId, + @Field("check") boolean check, + @Field("token") String token + ); + + @DELETE("/accounts/{account_id}/books/{book_id}/todos/{year}/{month}/{day}/{todo_id}") + Call deleteTodoById( + @Path("account_id") String accountId, + @Path("book_id") String bookId, + @Path("year") Integer year, + @Path("month") Integer month, + @Path("day") Integer day, + @Path("todo_id") Integer todoId, + @Query("token") String token + ); + + } diff --git a/app/src/main/java/com/example/citrusclient/views/MainActivity.java b/app/src/main/java/com/example/citrusclient/views/MainActivity.java new file mode 100644 index 0000000..a7b9e81 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/views/MainActivity.java @@ -0,0 +1,63 @@ +package com.example.citrusclient.views; + +import android.os.Bundle; +import android.view.MenuItem; + +import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.fragment.app.Fragment; + +import com.example.citrusclient.R; +import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.android.material.navigation.NavigationBarView; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_main); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + + setNavViewEvent(); + + } + + private void showFragment(Fragment fragment){ + getSupportFragmentManager().beginTransaction() + .replace(R.id.fragment_container, fragment) + .addToBackStack(null) + .commit(); + } + + private void setNavViewEvent(){ + BottomNavigationView navView = findViewById(R.id.bottomNavigationView); + navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { + int itemId = menuItem.getItemId(); + if(itemId == R.id.book){// 本棚 + showFragment(new MyBookshelfFragment()); + } else if(itemId == R.id.search){//検索 + + } else if(itemId == R.id.home){//ホーム + + }else if(itemId == R.id.calendar){ //カレンダ + + }else if(itemId == R.id.face){//マイページ + + } + return true; + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfActivity.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfActivity.java deleted file mode 100644 index 981023b..0000000 --- a/app/src/main/java/com/example/citrusclient/views/MyBookshelfActivity.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.example.citrusclient.views; - -import android.os.Bundle; - -import androidx.activity.EdgeToEdge; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.graphics.Insets; -import androidx.core.view.ViewCompat; -import androidx.core.view.WindowInsetsCompat; - -import com.example.citrusclient.R; - -public class MyBookshelfActivity extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - EdgeToEdge.enable(this); - setContentView(R.layout.activity_my_bookshelf); - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { - Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); - return insets; - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java new file mode 100644 index 0000000..36d1f65 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java @@ -0,0 +1,66 @@ +package com.example.citrusclient.views; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.example.citrusclient.R; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link MyBookshelfFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class MyBookshelfFragment 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 MyBookshelfFragment() { + // 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 MyBookshelfFragment. + */ + // TODO: Rename and change types and number of parameters + public static MyBookshelfFragment newInstance(String param1, String param2) { + MyBookshelfFragment fragment = new MyBookshelfFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_my_bookshelf_fragment, container, false); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_calendar_month_24.xml b/app/src/main/res/drawable/baseline_calendar_month_24.xml new file mode 100644 index 0000000..2a703af --- /dev/null +++ b/app/src/main/res/drawable/baseline_calendar_month_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/baseline_face_24.xml b/app/src/main/res/drawable/baseline_face_24.xml new file mode 100644 index 0000000..665f371 --- /dev/null +++ b/app/src/main/res/drawable/baseline_face_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/baseline_home_24.xml b/app/src/main/res/drawable/baseline_home_24.xml new file mode 100644 index 0000000..20cb4d6 --- /dev/null +++ b/app/src/main/res/drawable/baseline_home_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/baseline_menu_book_24.xml b/app/src/main/res/drawable/baseline_menu_book_24.xml new file mode 100644 index 0000000..10d9f76 --- /dev/null +++ b/app/src/main/res/drawable/baseline_menu_book_24.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/baseline_search_24.xml b/app/src/main/res/drawable/baseline_search_24.xml new file mode 100644 index 0000000..d29c6ea --- /dev/null +++ b/app/src/main/res/drawable/baseline_search_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/bottom_navigation_item_state.xml b/app/src/main/res/drawable/bottom_navigation_item_state.xml new file mode 100644 index 0000000..5c4ae3d --- /dev/null +++ b/app/src/main/res/drawable/bottom_navigation_item_state.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..82849ee --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,40 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_my_bookshelf.xml b/app/src/main/res/layout/activity_my_bookshelf.xml deleted file mode 100644 index 932b169..0000000 --- a/app/src/main/res/layout/activity_my_bookshelf.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_my_bookshelf_fragment.xml b/app/src/main/res/layout/fragment_my_bookshelf_fragment.xml new file mode 100644 index 0000000..1780898 --- /dev/null +++ b/app/src/main/res/layout/fragment_my_bookshelf_fragment.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_navigation_item.xml b/app/src/main/res/menu/bottom_navigation_item.xml new file mode 100644 index 0000000..99e29fb --- /dev/null +++ b/app/src/main/res/menu/bottom_navigation_item.xml @@ -0,0 +1,25 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa34252..934a76e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,5 @@ CitrusClient + + Hello blank fragment \ No newline at end of file