diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2996d53..f43d428 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -8,6 +8,12 @@ diff --git a/app/build.gradle b/app/build.gradle index dbf7c23..c49de85 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,4 +32,5 @@ //QRコードリーダー implementation 'com.journeyapps:zxing-android-embedded:3.6.0' implementation 'com.android.support:design:28.0.0' + implementation 'org.jetbrains:annotations-java5:15.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 26cd441..f3c794e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,9 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.example.cosmosclient"> - - - + + parent, View view, int position, long id) { + Spinner spinner = (Spinner)parent; + selectedSubCategory = (String)spinner.getSelectedItem(); + } + + // アイテムが選択されなかった + public void onNothingSelected(AdapterView parent) { + } + }); + } private void SearchSubCategory(String selectedCategory) { - + switch(selectedCategory) { + case "家電・携帯電話": + setSpinner(subCategory, Yolp.getInstance().getCategoryByName("家電・携帯電話").getSubCategoryNames()); + break; + case "コンビニ・スーパー": + setSpinner(subCategory, Yolp.getInstance().getCategoryByName("コンビニ・スーパー").getSubCategoryNames()); + break; + } } private void setSpinner(Spinner spinner, String[] arr){ diff --git a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java index 5cdef54..7187cf3 100644 --- a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java @@ -164,6 +164,13 @@ @Override public int compare(Request r1, Request r2) { return r1.getDeadline().compareTo(r2.getDeadline()); +// if (r1.getDeadline() == null || r2.getDeadline() == null) +// return 0; +// if(r1.getDeadline().getDate() >= r2.getDeadline().getDate() || r1.getDeadline().getMonth() > r2.getDeadline().getMonth()) +// return -1; +// if(r1.getDeadline().getDate() <= r2.getDeadline().getDate() || r1.getDeadline().getMonth() > r2.getDeadline().getMonth()) +// return 1; +// return r1.getDeadline().compareTo(r2.getDeadline()); } }; @@ -173,9 +180,9 @@ public int compare(Request r1, Request r2) { if (r1.getDeadline() == null || r2.getDeadline() == null) return 0; - if(r1.getDeadline().getDate() >= r2.getDeadline().getDate() || r1.getDeadline().getMonth() < r2.getDeadline().getMonth()) + if(r1.getDeadline().getDate() <= r2.getDeadline().getDate() || r1.getDeadline().getMonth() < r2.getDeadline().getMonth()) return -1; - if(r1.getDeadline().getDate() <= r2.getDeadline().getDate() || r1.getDeadline().getMonth() < r2.getDeadline().getMonth()) + if(r1.getDeadline().getDate() >= r2.getDeadline().getDate() || r1.getDeadline().getMonth() < r2.getDeadline().getMonth()) return 1; return r1.getDeadline().compareTo(r2.getDeadline()); } @@ -276,11 +283,7 @@ } private int ConvertMonth(int i, ArrayList requestList) { - if(requestList.get(i).getDeadline().getMonth() == 0) { - return 12; - } else { - return requestList.get(i).getDeadline().getMonth(); - } + return requestList.get(i).getDeadline().getMonth() + 1; } private void AddRequestListTable(ArrayList requestList) { diff --git a/app/src/main/java/com/example/cosmosclient/yolp/Category.java b/app/src/main/java/com/example/cosmosclient/yolp/Category.java new file mode 100644 index 0000000..b87f744 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/yolp/Category.java @@ -0,0 +1,53 @@ +package com.example.cosmosclient.yolp; + +import java.util.ArrayList; + +public class Category { + String name; + ArrayList subCategories = new ArrayList(); + + public Category(String name) { + this.name = name; + } + + public Category(String name, ArrayList subCategoryNames) { + this.name = name; + this.subCategories = subCategoryNames; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ArrayList getSubCategories() { + return subCategories; + } + + public String[] getSubCategoryNames() { + ArrayList subNames = new ArrayList(); + for (SubCategory subCategory: subCategories) { + subNames.add(subCategory.getSubName()); + } + return subNames.toArray(new String[0]); + } + + public void setSubCategories(ArrayList subCategories) { + this.subCategories = subCategories; + } + + public void addSubCategory(SubCategory subCategory) { + this.subCategories.add(subCategory); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + Category that = (Category) obj; + return subCategories.equals(that.subCategories) && name.equals(that.name); + } +} diff --git a/app/src/main/java/com/example/cosmosclient/yolp/SubCategory.java b/app/src/main/java/com/example/cosmosclient/yolp/SubCategory.java new file mode 100644 index 0000000..18ad2fa --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/yolp/SubCategory.java @@ -0,0 +1,35 @@ +package com.example.cosmosclient.yolp; + +public class SubCategory { + private int code; // 業種コード + private String subName; + + public SubCategory(int code, String name) { + this.code = code; + this.subName = name; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getSubName() { + return subName; + } + + public void setSubName(String subName) { + this.subName = subName; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + SubCategory that = (SubCategory) obj; + return code == that.code && subName == that.subName; + } +} diff --git a/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java b/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java new file mode 100644 index 0000000..164babc --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java @@ -0,0 +1,88 @@ +package com.example.cosmosclient.yolp; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; + +public class Yolp { + private static Yolp theInstance = null; + + private HashMap codeToSubcategory = new HashMap<>(); + private HashMap nameToCategory = new HashMap<>(); + + private Yolp() { +// Yolp.getInstance().getCategoryByName("ショッピング").getSubCategories(); +// for (Category c: Yolp.getInstance().getCategories()) { +// } +// for (String n: Yolp.getInstance().getCategoryNames()) { +// } + Category cat203 = new Category("家電・携帯電話"); + cat203.addSubCategory(new SubCategory(203001, "電化製品")); + cat203.addSubCategory(new SubCategory(203002,"家電量販店")); + cat203.addSubCategory(new SubCategory(203003,"携帯電話")); + cat203.addSubCategory(new SubCategory(203004, "パソコン")); + putNameToCategory(cat203.getName(),cat203); + + Category cat205 = new Category("コンビニ・スーパー"); + cat205.addSubCategory(new SubCategory(205001, "コンビニ")); + cat205.addSubCategory(new SubCategory(205002, "スーパー")); + putNameToCategory(cat205.getName(), cat205); + } + + public static Yolp getInstance() { + if (theInstance == null) { + theInstance = new Yolp(); + } + return theInstance; + } + + // 業種コードから業種名3 + public SubCategory getSubCategoryByCode(int code) { + return codeToSubcategory.get(code); + } + + public HashMap getCodeToSubcategory() { + return codeToSubcategory; + } + + public void setCodeToSubcategory(HashMap codeToSubcategory) { + this.codeToSubcategory = codeToSubcategory; + } + + public void putCodeToSubCategory(int code, SubCategory subCategory) { + codeToSubcategory.put(code, subCategory); + } + + // 業種名2から業種名3 + public String[] getCategoryNames() { + return nameToCategory.keySet().toArray(new String[0]); + } + + public Collection getCategories() { + return nameToCategory.values(); + } + + public Category getCategoryByName(String name) { + return nameToCategory.get(name); + } + + public void setNameToCategory(HashMap nameToCategory) { + this.nameToCategory = nameToCategory; + } + + public void putNameToCategory(String name, Category category) { + nameToCategory.put(name, category); + for (SubCategory s: category.getSubCategories()) { + codeToSubcategory.put(s.getCode(), s); + } + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Yolp yolp = (Yolp) o; + return codeToSubcategory.equals(yolp.codeToSubcategory) || nameToCategory.equals(yolp.nameToCategory); + } +} diff --git a/app/src/main/res/layout/activity_add_request.xml b/app/src/main/res/layout/activity_add_request.xml index 42bd2ba..3322631 100644 --- a/app/src/main/res/layout/activity_add_request.xml +++ b/app/src/main/res/layout/activity_add_request.xml @@ -81,7 +81,6 @@ android:layout_height="50dp" android:layout_marginLeft="100dp" android:layout_marginTop="230dp" - android:entries="@array/location_category" android:spinnerMode="dropdown" /> android.studio@android.com Navigation header Settings - - - コンビニ・スーパー - 家電・携帯電話 - 病院・診療所 - ペット・動物病院 -