Commit 91b0c9bc authored by YONG-LIN SU's avatar YONG-LIN SU

添加鄰近續單清單功能

parent b5ea1753
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="577125220043" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-08-22T09:24:14.288273800Z" />
</component>
</project>
\ No newline at end of file
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/content_t02_select_road.xml" value="0.1875" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/content_t02_select_road.xml" value="0.1875" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/list_view_device_name_item.xml" value="0.34375" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/list_view_device_name_item.xml" value="0.34375" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycle_item.xml" value="0.34375" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycle_item.xml" value="0.34375" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycle_view_renew_list_item.xml" value="0.34375" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_bulletin_board_item.xml" value="0.34375" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_bulletin_board_item.xml" value="0.34375" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_db_table_item.xml" value="0.33" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_db_table_item.xml" value="0.33" />
<entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_item.xml" value="0.34375" /> <entry key="..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/recycler_view_item.xml" value="0.34375" />
......
package ecom.android.newparkapp.view; package ecom.android.newparkapp.view;
import android.content.Intent; import android.content.Intent;
import android.location.Location;
import android.os.Bundle; import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
...@@ -11,6 +14,8 @@ import androidx.lifecycle.ViewModelProvider; ...@@ -11,6 +14,8 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.navigation.NavigationBarView;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
...@@ -42,6 +47,8 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -42,6 +47,8 @@ public class T04RenewListActivity extends AppCompatActivity {
private Map<String, List<Case>> pureCasesGroupByRoad = new HashMap<>(); private Map<String, List<Case>> pureCasesGroupByRoad = new HashMap<>();
private FusedGpsViewModel fusedGpsViewModel; private FusedGpsViewModel fusedGpsViewModel;
private ReNewNestedItemOnClick reNewNestedItemOnClick = new ReNewNestedItemOnClick(); private ReNewNestedItemOnClick reNewNestedItemOnClick = new ReNewNestedItemOnClick();
private final float nearSpaceMaxDistance = 100.0f; // 鄰近車格多少m以內
private boolean isNearSpace = false;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -71,11 +78,27 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -71,11 +78,27 @@ public class T04RenewListActivity extends AppCompatActivity {
//下拉刷新 //下拉刷新
dataBinding.refreshLayout.setColorSchemeColors(getResources().getColor(R.color.blue)); dataBinding.refreshLayout.setColorSchemeColors(getResources().getColor(R.color.blue));
dataBinding.refreshLayout.setOnRefreshListener(()->{ dataBinding.refreshLayout.setOnRefreshListener(()->{
pureCasesGroupByRoad.clear(); updateDataAndRefresh();
updateData();
reNewListAdapter.notifyDataSetChanged();
dataBinding.refreshLayout.setRefreshing(false); dataBinding.refreshLayout.setRefreshing(false);
});
// 綁定BottomNavigationView按鈕事件
dataBinding.navView.setOnItemSelectedListener(item -> {
switch (item.getItemId()){
case R.id.renewList_all:
Toast.makeText(this, "選取全站續單", Toast.LENGTH_SHORT).show();
isNearSpace = false;
updateDataAndRefresh();
break;
case R.id.renewList_near:
Toast.makeText(this, "選取鄰近續單", Toast.LENGTH_SHORT).show();
isNearSpace = true;
updateDataAndRefresh();
break;
default:
return false;
}
return true;
}); });
}//onCreate }//onCreate
...@@ -94,8 +117,13 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -94,8 +117,13 @@ public class T04RenewListActivity extends AppCompatActivity {
} }
private void updateData(){ private void updateData(){
updateData(false);
}
private void updateData(boolean isNear){
cases = infoRepository.caseDao.getAllByShiftAndUser(shift, userId); cases = infoRepository.caseDao.getAllByShiftAndUser(shift, userId);
Map<String, List<Case>> casesGroupByRoad = cases.stream().collect(Collectors.groupingBy(c->c.space.road.getCombineInfo())); Map<String, List<Case>> casesGroupByRoad = cases.stream().collect(Collectors.groupingBy(c->c.space.road.getCombineInfo()));
Location location = fusedGpsViewModel.getLocation().getValue();
for (Map.Entry<String, List<Case>> entry: casesGroupByRoad.entrySet()){ for (Map.Entry<String, List<Case>> entry: casesGroupByRoad.entrySet()){
String road = entry.getKey(); String road = entry.getKey();
...@@ -113,6 +141,13 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -113,6 +141,13 @@ public class T04RenewListActivity extends AppCompatActivity {
if (existSpaceId.contains(selectedCase.space.id)){ if (existSpaceId.contains(selectedCase.space.id)){
continue; continue;
} }
// 鄰近車格過濾
if (isNear){
float dis = selectedCase.space.getDistance(location);
if (dis > nearSpaceMaxDistance){
continue;
}
}
pureRoadCases.add(selectedCase); pureRoadCases.add(selectedCase);
existSpaceId.add(selectedCase.space.id); existSpaceId.add(selectedCase.space.id);
} }
...@@ -122,6 +157,13 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -122,6 +157,13 @@ public class T04RenewListActivity extends AppCompatActivity {
} }
} }
private void updateDataAndRefresh(){
pureCasesGroupByRoad.clear();
updateData(isNearSpace);
reNewListAdapter = new ReNewListAdapter(pureCasesGroupByRoad, fusedGpsViewModel.getLocation(), reNewNestedItemOnClick);
dataBinding.recyclelist.setAdapter(reNewListAdapter);
}
private class ReNewNestedItemOnClick implements ReNewNestedAdapter.OnItemClickListener { private class ReNewNestedItemOnClick implements ReNewNestedAdapter.OnItemClickListener {
@Override @Override
public void onSpaceCaseClick(String billingNumber2) { public void onSpaceCaseClick(String billingNumber2) {
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <layout xmlns:tools="http://schemas.android.com/tools"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="10dp" android:layout_margin="10dp"
android:background="#ECEBEB" android:background="#ECEBEB"
android:orientation="vertical"> android:orientation="vertical">
...@@ -39,11 +39,11 @@ ...@@ -39,11 +39,11 @@
<TextView <TextView
android:id="@+id/car_num_txt" android:id="@+id/car_num_txt"
android:layout_width="153dp" android:layout_width="107dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginStart="234dp" android:layout_marginStart="280dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="fill_horizontal|center_vertical" android:gravity="fill_horizontal|center_vertical"
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:text="TextView" android:text="正在取得GPS位置....."
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" android:textSize="20sp"
......
...@@ -31,4 +31,5 @@ KK 光華路KK ...@@ -31,4 +31,5 @@ KK 光華路KK
GG 志昇街GG GG 志昇街GG
WA 興達路WA WA 興達路WA
DD 國華街DD DD 國華街DD
II 博東路II II 博東路II
\ No newline at end of file CY 勤益大道CY
\ No newline at end of file
...@@ -5,4 +5,5 @@ A215 A 01 01 23.4799762 120.4486685 01 ...@@ -5,4 +5,5 @@ A215 A 01 01 23.4799762 120.4486685 01
N066 N 02 02 23.4894827 120.4303129 01 N066 N 02 02 23.4894827 120.4303129 01
N068 N 02 02 23.4895994 120.4303028 01 N068 N 02 02 23.4895994 120.4303028 01
N070 N 02 02 23.4900085 120.4301186 01 N070 N 02 02 23.4900085 120.4301186 01
CY001 CY 02 02 24.143980 120.728605 01
CY002 CY 01 01 24.144095 120.728209 01
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment