diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5bfc0fe..fae7bc6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -42,6 +42,7 @@ + () { -// @Override -// public void onChanged(@Nullable String s) { -// textView.setText(s); -// } -// }); return root; + } - + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + Acanthus acanthus = (Acanthus) getActivity().getApplication(); + ArrayList animationList = (ArrayList) acanthus.getAnimationJsonList(); + ArrayList searchAnimationList = new ArrayList<>(); + + TextView warningText = view.findViewById(R.id.warningText); + warningText.setVisibility(view.INVISIBLE); + + Button searchButton = view.findViewById(R.id.searchButton); + + searchButton.setOnClickListener(v -> { + searchAnimationList.clear(); + String searchWord = ((EditText) view.findViewById(R.id.searchWord)).getText().toString(); + + if (searchWord.equals("") || searchWord.equals("キーワードを入力")) { + warningText.setVisibility(view.VISIBLE); + }else{ + warningText.setVisibility(view.INVISIBLE); + for (AnimationJson animationJson : animationList) { + if (animationJson.getAnimationName().indexOf(searchWord) != -1){ + searchAnimationList.add(animationJson); + } + } + + Intent intent = new Intent(acanthus, SearchResultActivity.class); + intent.putExtra("RESULT", searchAnimationList); + startActivity(intent); + } + + }); + + } @Override public void onDestroyView() { diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchResultActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchResultActivity.java new file mode 100644 index 0000000..104d0bc --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchResultActivity.java @@ -0,0 +1,57 @@ +package org.ntlab.acanthus_client.views.main_menu_ui.search; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.BaseAdapter; +import android.widget.ListView; +import android.widget.TextView; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.AnimationJson; +import org.ntlab.acanthus_client.views.animation.AnimationActivity; +import org.ntlab.acanthus_client.views.main_menu_ui.edit.WorkListViewAdapter; + +import java.util.ArrayList; + +import androidx.appcompat.app.AppCompatActivity; + + +public class SearchResultActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_search_result); + setTitle("検索結果"); + + Intent intent = getIntent(); + ArrayList animationsResult = (ArrayList) intent.getSerializableExtra("RESULT"); + ArrayList animationNameList = new ArrayList<>(); + ArrayList animationLastUpdateList = new ArrayList<>(); + TextView resultText = findViewById(R.id.resultText); + Integer listSize = animationsResult.size(); + resultText.setText("検索結果 " + listSize.toString() + " 件"); + ListView listView = findViewById(R.id.resultList); + + for (AnimationJson animationJson : animationsResult) { + animationNameList.add(animationJson.getAnimationName()); + animationLastUpdateList.add(animationJson.getLastUpdate()); + } + + BaseAdapter adapter = new WorkListViewAdapter(getApplication(), R.layout.work_list, animationNameList, animationLastUpdateList); + + listView.setAdapter(adapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Intent intent = new Intent(getApplication(), AnimationActivity.class); + intent.putExtra("AnimationJsonData", animationsResult.get(position)); + startActivity(intent); + } + }); + + } + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java index 9afe3f4..bfb1a0c 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/search/SearchViewModel.java @@ -16,4 +16,5 @@ public LiveData getText() { return mText; } + } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_search_result.xml b/app/src/main/res/layout/activity_search_result.xml new file mode 100644 index 0000000..6a63ce4 --- /dev/null +++ b/app/src/main/res/layout/activity_search_result.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 2228c3d..f085b88 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -24,26 +24,26 @@ app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="0dp"> - + + + android:textColorLink="#00BCD4" + android:textStyle="bold" /> @@ -55,6 +55,14 @@ tools:layout_editor_absoluteX="0dp"> + +