diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 17e4369..1719529 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -43,7 +43,11 @@ implementation(libs.recyclerview) implementation(libs.retrofit2.retrofit) implementation(libs.converter.jackson) + implementation(libs.navigation.runtime.android) testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) + implementation(libs.navigation.fragment) + implementation(libs.navigation.ui) + } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 041ace3..2179e9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,20 +17,22 @@ android:name=".views.LoginActivity" /> - + + + - - - + + - - - - + + + diff --git a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java deleted file mode 100644 index 9d3eb0b..0000000 --- a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestResource.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.tampopo_client.resources; - - -import com.example.tampopo_client.models.FriendRequest; - -import java.util.List; - -import retrofit2.Call; -import retrofit2.http.DELETE; -import retrofit2.http.Field; -import retrofit2.http.FormUrlEncoded; -import retrofit2.http.GET; -import retrofit2.http.POST; -import retrofit2.http.Path; -import retrofit2.http.Query; - -public interface FriendRequestResource { - - //このAPIではリクエストのボディをx-www-form-urlencoded という形式で送ります - @FormUrlEncoded - @POST("friend-requests") - Call postFriendRequest( - @Field("sender-id") String senderId, - @Field("receiver-id") String receiverId, - @Field("token") String token - ); - - @GET("friend-requests") - Call> getFriendRequests( - @Query("token") String token - ); - - @DELETE("friend-requests/{friend-request-id}") - Call deleteFriendRequest( - @Path("friend-request-id") String friendRequestId, - @Query("token") String token - ); -} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java new file mode 100644 index 0000000..d119b3d --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/resources/FriendRequestsResource.java @@ -0,0 +1,38 @@ +package com.example.tampopo_client.resources; + + +import com.example.tampopo_client.models.FriendRequest; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.http.DELETE; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Path; +import retrofit2.http.Query; + +public interface FriendRequestsResource { + + //このAPIではリクエストのボディをx-www-form-urlencoded という形式で送ります + @FormUrlEncoded + @POST("friend-requests") + Call postFriendRequest( + @Field("sender-id") String senderId, + @Field("receiver-id") String receiverId, + @Field("token") String token + ); + + @GET("friend-requests") + Call> getFriendRequests( + @Query("token") String token + ); + + @DELETE("friend-requests/{friend-request-id}") + Call deleteFriendRequest( + @Path("friend-request-id") String friendRequestId, + @Query("token") String token + ); +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardFragment.java b/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardFragment.java new file mode 100644 index 0000000..2dcc990 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardFragment.java @@ -0,0 +1,37 @@ +package com.example.tampopo_client.ui.dashboard; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; + +import com.example.tampopo_client.databinding.FragmentDashboardBinding; + +public class DashboardFragment extends Fragment { + + private FragmentDashboardBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + DashboardViewModel dashboardViewModel = + new ViewModelProvider(this).get(DashboardViewModel.class); + + binding = FragmentDashboardBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textDashboard; + dashboardViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardViewModel.java b/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardViewModel.java new file mode 100644 index 0000000..34b0dde --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/ui/dashboard/DashboardViewModel.java @@ -0,0 +1,19 @@ +package com.example.tampopo_client.ui.dashboard; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class DashboardViewModel extends ViewModel { + + private final MutableLiveData mText; + + public DashboardViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is dashboard fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/ui/home/HomeFragment.java b/app/src/main/java/com/example/tampopo_client/ui/home/HomeFragment.java new file mode 100644 index 0000000..e753b82 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/ui/home/HomeFragment.java @@ -0,0 +1,37 @@ +package com.example.tampopo_client.ui.home; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; + +import com.example.tampopo_client.databinding.FragmentHomeBinding; + +public class HomeFragment extends Fragment { + + private FragmentHomeBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + HomeViewModel homeViewModel = + new ViewModelProvider(this).get(HomeViewModel.class); + + binding = FragmentHomeBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textHome; + homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/ui/home/HomeViewModel.java b/app/src/main/java/com/example/tampopo_client/ui/home/HomeViewModel.java new file mode 100644 index 0000000..317e835 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/ui/home/HomeViewModel.java @@ -0,0 +1,19 @@ +package com.example.tampopo_client.ui.home; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class HomeViewModel extends ViewModel { + + private final MutableLiveData mText; + + public HomeViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is home fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java new file mode 100644 index 0000000..fb1c277 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendReceivedRequestViewModel.java @@ -0,0 +1,40 @@ +package com.example.tampopo_client.viewModels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.example.tampopo_client.models.FriendRequest; +import com.example.tampopo_client.resources.FriendRequestsResource; + +import java.util.List; + +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class FriendReceivedRequestViewModel extends ViewModel { + //サーバー(API)と通信するためのツール + private final Retrofit retrofit; + //APIの窓口 + private final FriendRequestsResource friendRequestsResource; + //自分が受け取った申請 + private final MutableLiveData> receivedRequests ; + //通信結果の状態 + private final MutableLiveData operationResult ; + + public FriendReceivedRequestViewModel() { + + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/tampopo-server/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + this.friendRequestsResource = retrofit.create(FriendRequestsResource.class); + this.receivedRequests = new MutableLiveData<>(); + this.operationResult = new MutableLiveData<>(); + } + //viewがobserve出来るように + public MutableLiveData> getSentRequestsLiveData() { + return receivedRequests; + } + + +} diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java new file mode 100644 index 0000000..6676003 --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/FriendSentRequestViewModel.java @@ -0,0 +1,126 @@ +package com.example.tampopo_client.viewModels; + +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.example.tampopo_client.models.FriendRequest; +import com.example.tampopo_client.resources.FriendRequestsResource; + + +import java.util.List; + +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +public class FriendSentRequestViewModel extends ViewModel { + //サーバー(API)と通信するためのツール + private final Retrofit retrofit; + // APIの窓口 + private final FriendRequestsResource friendRequestsResource; + //自分が送った申請 + private final MutableLiveData> sentRequests ; + //変数がfinalやから一回しか代入できません + //sentRequestで呼び出される、viewモデルの下のコンストラクターがアンドロイドがで呼び出される + // 処理の進行中 + private final MutableLiveData operationResult ; + + + + public FriendSentRequestViewModel() { + + this.retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/tampopo-server/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + + this.friendRequestsResource = retrofit.create(FriendRequestsResource.class); + this.sentRequests = new MutableLiveData<>(); + this.operationResult = new MutableLiveData<>(); + + } + //viewがobserve出来るように + public MutableLiveData> getSentRequestsLiveData() { + return sentRequests; + } + +//Mutable Livedataの宣言 + + + + + +// /** +// * GET 全sentリクエスト取得 +// */ +/* public void loadFriendRequests(String token) { + Call> call = friendRequestResource.getFriendRequests(token); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + HttpCookie requestsLiveData; + requestsLiveData.setValue(response.body()); + } else { + System.out.println("取得失敗: " + response.code()); + } + }*/ +// +// @Override +// public void onFailure(Call> call, Throwable t) { +// System.out.println("通信エラー: " + t.getMessage()); +// } +// }); +// } +// +// /** +// * POST リクエスト送信 +// */ +// public void createFriendRequest(String senderId, String receiverId, String token) { +// Call call = friendRequestResource.postFriendRequest(senderId, receiverId, token); +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// operationResultLiveData.setValue(true); +// loadFriendRequests(token); +// } else { +// operationResultLiveData.setValue(false); +// System.out.println("Failed POST: " + response.code()); +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// operationResultLiveData.setValue(false); +// System.out.println("通信エラー: " + t.getMessage()); +// } +// }); +// } +// +// /** +// * DELETE リクエスト削除 +// */ +// public void deleteFriendRequest(String friendRequestId, String token) { +// Call call = friendRequestResource.deleteFriendRequest(friendRequestId, token); +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// operationResultLiveData.setValue(true); +// loadFriendRequests(token); +// } else { +// operationResultLiveData.setValue(false); +// System.out.println("削除失敗: " + response.code()); +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// operationResultLiveData.setValue(false); +// System.out.println(" 通信エラー " + t.getMessage()); +// } +// }); +// } +//} + +} diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendActivity.java b/app/src/main/java/com/example/tampopo_client/views/FriendActivity.java index c7bb399..4e60537 100644 --- a/app/src/main/java/com/example/tampopo_client/views/FriendActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/FriendActivity.java @@ -1,26 +1,58 @@ package com.example.tampopo_client.views; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; +import androidx.lifecycle.ViewModelProvider; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import com.example.tampopo_client.databinding.ActivityFriendBinding; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; import com.example.tampopo_client.R; +import com.google.android.material.bottomnavigation.BottomNavigationView; public class FriendActivity extends AppCompatActivity { - + private ActivityFriendBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - EdgeToEdge.enable(this); - setContentView(R.layout.activity_friend); - 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; - }); + +// EdgeToEdge.enable(this); +// setContentView(R.layout.activity_friend); +// 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; +// }); +// } + binding = ActivityFriendBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + Toolbar toolbar = findViewById(R.id.actionbar); + setSupportActionBar(toolbar); + + BottomNavigationView navView = findViewById(R.id.nav_view); + // Passing each menu ID as a set of Ids because each + // menu should be considered as top level destinations. + AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder( + R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications) + .build(); + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main); + NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); + NavigationUI.setupWithNavController(binding.navView, navController); } + + } \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java index b320d46..abe19ae 100644 --- a/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java +++ b/app/src/main/java/com/example/tampopo_client/views/FriendReceivedFragment.java @@ -13,7 +13,7 @@ import android.view.ViewGroup; import com.example.tampopo_client.R; -import com.example.tampopo_client.views.placeholder.PlaceholderContent; +import com.example.tampopo_client.views.placeholder.FriendRequestContent; /** * A fragment representing a list of Items. @@ -65,7 +65,7 @@ } else { recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount)); } - recyclerView.setAdapter(new MyFriendRequestRecyclerViewAdapter(PlaceholderContent.ITEMS)); + recyclerView.setAdapter(new MyFriendRequestRecyclerViewAdapter(FriendRequestContent.ITEMS)); } return view; } diff --git a/app/src/main/java/com/example/tampopo_client/views/LaunchActivity.java b/app/src/main/java/com/example/tampopo_client/views/LaunchActivity.java index 3c966e0..d36fa48 100644 --- a/app/src/main/java/com/example/tampopo_client/views/LaunchActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/LaunchActivity.java @@ -25,7 +25,7 @@ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); - Button button_register = (Button) findViewById(R.id.Registerbutton); + Button button_register = (Button) findViewById(R.id.Newregistationbutton); button_register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -33,5 +33,13 @@ startActivity(intent); } }); + button_register = (Button) findViewById(R.id.Loginbutton); + button_register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LaunchActivity.this,LoginActivity.class); + startActivity(intent); + } + }); } } diff --git a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java index e9a31b3..c253be2 100644 --- a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java @@ -1,6 +1,10 @@ package com.example.tampopo_client.views; +import android.content.Intent; import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageButton; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; @@ -22,5 +26,33 @@ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); + + //メイン画面からフレンド一覧画面への遷移 + ImageButton friendButton = (ImageButton) findViewById(R.id.friend); + friendButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + Intent intent = new Intent(MainActivity.this, FriendActivity.class); + startActivity(intent); + } + }); + + //メイン画面から通知一覧画面への遷移 +// ImageButton notificationButton = (ImageButton)findViewById(R.id.notification); +// notificationButton.setOnClickListener(new View.OnClickListener() { +// public void onClick(View v) { +// Intent intent = new Intent(MainActivity.this,notificationActivity. class); +// startActivity(intent); +// } +// }); + + //メイン画面から設定画面への遷移 +// ImageButton settingButton = (ImageButton)findViewById(R.id.setting); +// settingButton.setOnClickListener(new View.OnClickListener() { +// public void onClick(View v) { +// Intent intent = new Intent(MainActivity.this,settingActivity. class); +// startActivity(intent); +// } +// }); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java b/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java index 09d6193..ebe4c76 100644 --- a/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java +++ b/app/src/main/java/com/example/tampopo_client/views/MyFriendRequestRecyclerViewAdapter.java @@ -3,24 +3,23 @@ import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.example.tampopo_client.views.placeholder.PlaceholderContent.PlaceholderItem; +import com.example.tampopo_client.views.placeholder.FriendRequestContent.FriendRequestItem; import com.example.tampopo_client.databinding.FragmentFriendReceivedBinding; import java.util.List; /** - * {@link RecyclerView.Adapter} that can display a {@link PlaceholderItem}. + * {@link RecyclerView.Adapter} that can display a {@link FriendRequestItem}. * TODO: Replace the implementation with code for your data type. */ public class MyFriendRequestRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; + private final List mValues; - public MyFriendRequestRecyclerViewAdapter(List items) { + public MyFriendRequestRecyclerViewAdapter(List items) { mValues = items; } @@ -46,7 +45,7 @@ public class ViewHolder extends RecyclerView.ViewHolder { public final TextView mIdView; public final TextView mContentView; - public PlaceholderItem mItem; + public FriendRequestItem mItem; public ViewHolder(FragmentFriendReceivedBinding binding) { super(binding.getRoot()); diff --git a/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java b/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java index 16cf924..4ba2800 100644 --- a/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java @@ -1,6 +1,9 @@ package com.example.tampopo_client.views; +import android.content.Intent; import android.os.Bundle; +import android.view.View; +import android.widget.Button; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; @@ -22,5 +25,21 @@ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); + Button button_register = (Button) findViewById(R.id.Registerbutton); + button_register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(RegisterActivity.this,LoginActivity.class); + startActivity(intent); + } + }); + button_register = (Button) findViewById(R.id.Loginbutton2); + button_register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(RegisterActivity.this,LoginActivity.class); + startActivity(intent); + } + }); } } \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java new file mode 100644 index 0000000..fb43f8f --- /dev/null +++ b/app/src/main/java/com/example/tampopo_client/views/placeholder/FriendRequestContent.java @@ -0,0 +1,72 @@ +package com.example.tampopo_client.views.placeholder; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Helper class for providing sample content for user interfaces created by + * Android template wizards. + *

+ * TODO: Replace all uses of this class before publishing your app. + */ +public class FriendRequestContent { + + /** + * An array of sample (placeholder) items. + */ + public static final List ITEMS = new ArrayList(); + + /** + * A map of sample (placeholder) items, by ID. + */ + public static final Map ITEM_MAP = new HashMap(); + + private static final int COUNT = 25; + + static { + // Add some sample items. + for (int i = 1; i <= COUNT; i++) { + addItem(createPlaceholderItem(i)); + } + } + + private static void addItem(FriendRequestItem item) { + ITEMS.add(item); + ITEM_MAP.put(item.id, item); + } + + private static FriendRequestItem createPlaceholderItem(int position) { + return new FriendRequestItem(String.valueOf(position), "Item " + position, makeDetails(position)); + } + + private static String makeDetails(int position) { + StringBuilder builder = new StringBuilder(); + builder.append("Details about Item: ").append(position); + for (int i = 0; i < position; i++) { + builder.append("\nMore details information here."); + } + return builder.toString(); + } + + /** + * A placeholder item representing a piece of content. + */ + public static class FriendRequestItem { + public final String id; + public final String content; + public final String details; + + public FriendRequestItem(String id, String content, String details) { + this.id = id; + this.content = content; + this.details = details; + } + + @Override + public String toString() { + return content; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tampopo_client/views/placeholder/PlaceholderContent.java b/app/src/main/java/com/example/tampopo_client/views/placeholder/PlaceholderContent.java deleted file mode 100644 index 00871a5..0000000 --- a/app/src/main/java/com/example/tampopo_client/views/placeholder/PlaceholderContent.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.example.tampopo_client.views.placeholder; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Helper class for providing sample content for user interfaces created by - * Android template wizards. - *

- * TODO: Replace all uses of this class before publishing your app. - */ -public class PlaceholderContent { - - /** - * An array of sample (placeholder) items. - */ - public static final List ITEMS = new ArrayList(); - - /** - * A map of sample (placeholder) items, by ID. - */ - public static final Map ITEM_MAP = new HashMap(); - - private static final int COUNT = 25; - - static { - // Add some sample items. - for (int i = 1; i <= COUNT; i++) { - addItem(createPlaceholderItem(i)); - } - } - - private static void addItem(PlaceholderItem item) { - ITEMS.add(item); - ITEM_MAP.put(item.id, item); - } - - private static PlaceholderItem createPlaceholderItem(int position) { - return new PlaceholderItem(String.valueOf(position), "Item " + position, makeDetails(position)); - } - - private static String makeDetails(int position) { - StringBuilder builder = new StringBuilder(); - builder.append("Details about Item: ").append(position); - for (int i = 0; i < position; i++) { - builder.append("\nMore details information here."); - } - return builder.toString(); - } - - /** - * A placeholder item representing a piece of content. - */ - public static class PlaceholderItem { - public final String id; - public final String content; - public final String details; - - public PlaceholderItem(String id, String content, String details) { - this.id = id; - this.content = content; - this.details = details; - } - - @Override - public String toString() { - return content; - } - } -} \ No newline at end of file diff --git a/app/src/main/res/drawable/friend.png b/app/src/main/res/drawable/friend.png new file mode 100644 index 0000000..0d7c63c --- /dev/null +++ b/app/src/main/res/drawable/friend.png Binary files differ diff --git a/app/src/main/res/drawable/icon_cat.jpg b/app/src/main/res/drawable/icon_cat.jpg new file mode 100644 index 0000000..c9a5ce9 --- /dev/null +++ b/app/src/main/res/drawable/icon_cat.jpg Binary files differ diff --git a/app/src/main/res/drawable/notification.png b/app/src/main/res/drawable/notification.png new file mode 100644 index 0000000..83e49f4 --- /dev/null +++ b/app/src/main/res/drawable/notification.png Binary files differ diff --git a/app/src/main/res/drawable/setting.png b/app/src/main/res/drawable/setting.png new file mode 100644 index 0000000..2b39b62 --- /dev/null +++ b/app/src/main/res/drawable/setting.png Binary files differ diff --git a/app/src/main/res/layout/activity_friend.xml b/app/src/main/res/layout/activity_friend.xml index 79295c8..6f2939d 100644 --- a/app/src/main/res/layout/activity_friend.xml +++ b/app/src/main/res/layout/activity_friend.xml @@ -1,10 +1,86 @@ + android:paddingTop="?attr/actionBarSize"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_launch.xml b/app/src/main/res/layout/activity_launch.xml index e11fd8c..7ccbd4b 100644 --- a/app/src/main/res/layout/activity_launch.xml +++ b/app/src/main/res/layout/activity_launch.xml @@ -13,7 +13,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="tampopo" - android:textSize="25dp" + android:textSize="45dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" @@ -22,22 +22,24 @@ app:layout_constraintVertical_bias="0.276" />