myDataListのAddress(住所)をlatlng(緯度経度)に変換する処理の実装 #27

Merged
Utahshi merged 1 commits from CreateRoot2 into master 2024-07-03 04:53:18 +00:00
4 changed files with 34 additions and 32 deletions

View File

@ -6,7 +6,7 @@
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="gradleJvm" value="Embedded JDK" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

View File

@ -39,18 +39,18 @@ public class CreateRoot {
private final AppDatabase db;
private int arraySize;
boolean Duplicates=true;
boolean secondDuplicates=true;
boolean secondDuplicates=false;
private Context context;
String testdata[] = {"20240604", "20240605", "20240606"};
String[] testdata = {"20240604", "20240605", "20240606"};
public CreateRoot(AppCompatActivity activity) {
this.db = Room.databaseBuilder(activity.getApplicationContext(), AppDatabase.class, "SetUpTable").build();
}
public Boolean receiveData(List<MyDataClass> myDataList) {
public Boolean receiveData(List<MyDataClass> myDataList,Context context) {
//myDataListの要素data第一希望日と第二希望日に以下を追加する
//保護者の希望時間帯の長さ
@ -97,6 +97,8 @@ public class CreateRoot {
if (!Duplicates) {
sortSchedule(myDataList);
geocodeAddress(myDataList,context);
outPutLogSchedule(myDataList);
} else {
//第二希望日で同じ処理を行う
Log.d("CreateRoot", "第二希望");
@ -105,20 +107,16 @@ public class CreateRoot {
secondDuplicates = secondCreateSchedule(myDataList, intervalArray);
if (!secondDuplicates) {
sortSchedule(myDataList);
geocodeAddress(myDataList,context);
outPutLogSchedule(myDataList);
} else {
Log.d("CreateRoot", "重複によるエラー");
}
}
});
if (!secondDuplicates) {
geocodeAddress(myDataList);
outPutLogSchedule(myDataList);
return true;
} else {
return false;
}
return !secondDuplicates;
}
@ -317,9 +315,10 @@ public class CreateRoot {
}
for (int i = 0; i < myDataList.size(); i++) {
if (myDataList.get(i).getSchedule() == 0) ;
if (myDataList.get(i).getSchedule() == 0) {
return true;
}
}
return false;
}
@ -338,6 +337,7 @@ public class CreateRoot {
for (int i = 0; i < myDataList.size(); i++) {
if (myDataList.get(i).getSchedule() == 0) {
return true;
}
}
return false;
@ -347,7 +347,7 @@ public class CreateRoot {
if (intervalArray[x][j][0] >= Integer.parseInt(myDataList.get(i).getParentStartTimeString()) && intervalArray[x][j + 1][0] <= Integer.parseInt(myDataList.get(i).getParentEndTimeString()) && intervalArray[x][j][1] == 0) {
intervalArray[x][j][1] += 1;//割り当て済みを表す
myDataList.get(i).setSchedule(Integer.parseInt(desiredDate.substring(4, 8) + String.valueOf(intervalArray[x][j][0])));
myDataList.get(i).setSchedule(Integer.parseInt(desiredDate.substring(4, 8) + intervalArray[x][j][0]));
}
}
@ -359,7 +359,7 @@ public class CreateRoot {
private void geocodeAddress(List<MyDataClass> myDataList) {
private void geocodeAddress(List<MyDataClass> myDataList,Context context) {
try {
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
for(int i=0;i<myDataList.size();i++) {

View File

@ -40,9 +40,6 @@ public class FirestoreReception {
for (QueryDocumentSnapshot document : task.getResult()) {
Map<String, Object> data = document.getData();
//CreateRootクラスのインスタンスを生成dataを渡す
// GeoCoder geoCoder = new GeoCoder();
// geoCoder.processData(data, context);
// ドキュメントのデータをMyDataClassのインスタンスにマッピング
MyDataClass myData = new MyDataClass(

View File

@ -49,6 +49,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
//取得するためのクラスID
private int classId;
private String address;
@Override
@ -83,6 +84,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
// firestoreの受信関連
db = FirebaseFirestore.getInstance();
firestoreReception = new FirestoreReception();
Log.d("MainActivity","geocodeAddress");
//TODO:classIdの初期値を取得
ExecutorService executor = Executors.newSingleThreadExecutor();
@ -103,6 +106,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
}
// クリック処理
@Override
public void onClick(View view) {
@ -154,6 +158,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
startActivity(toSubmission);
}
}
//UUIDを表示するかのダイアログ
private void showUUIDYesNoDialog() {
firestoreReception_classIdDatabase = new FirestoreReception_classIdDatabase();
@ -225,7 +230,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
}
Log.d("MainActivity", "myDataList" + myDataList.size());
CreateRoot createRoot = new CreateRoot(MainActivity.this);
Boolean notDuplicates = createRoot.receiveData(myDataList);
Boolean notDuplicates = createRoot.receiveData(myDataList,getApplicationContext());
latch.countDown();
if (notDuplicates) {