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 @@
<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/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_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" />
......
package ecom.android.newparkapp.view;
import android.content.Intent;
import android.location.Location;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
......@@ -11,6 +14,8 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.navigation.NavigationBarView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
......@@ -42,6 +47,8 @@ public class T04RenewListActivity extends AppCompatActivity {
private Map<String, List<Case>> pureCasesGroupByRoad = new HashMap<>();
private FusedGpsViewModel fusedGpsViewModel;
private ReNewNestedItemOnClick reNewNestedItemOnClick = new ReNewNestedItemOnClick();
private final float nearSpaceMaxDistance = 100.0f; // 鄰近車格多少m以內
private boolean isNearSpace = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -71,11 +78,27 @@ public class T04RenewListActivity extends AppCompatActivity {
//下拉刷新
dataBinding.refreshLayout.setColorSchemeColors(getResources().getColor(R.color.blue));
dataBinding.refreshLayout.setOnRefreshListener(()->{
pureCasesGroupByRoad.clear();
updateData();
reNewListAdapter.notifyDataSetChanged();
updateDataAndRefresh();
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
......@@ -94,8 +117,13 @@ public class T04RenewListActivity extends AppCompatActivity {
}
private void updateData(){
updateData(false);
}
private void updateData(boolean isNear){
cases = infoRepository.caseDao.getAllByShiftAndUser(shift, userId);
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()){
String road = entry.getKey();
......@@ -113,6 +141,13 @@ public class T04RenewListActivity extends AppCompatActivity {
if (existSpaceId.contains(selectedCase.space.id)){
continue;
}
// 鄰近車格過濾
if (isNear){
float dis = selectedCase.space.getDistance(location);
if (dis > nearSpaceMaxDistance){
continue;
}
}
pureRoadCases.add(selectedCase);
existSpaceId.add(selectedCase.space.id);
}
......@@ -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 {
@Override
public void onSpaceCaseClick(String billingNumber2) {
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="10dp"
android:background="#ECEBEB"
android:orientation="vertical">
......@@ -39,11 +39,11 @@
<TextView
android:id="@+id/car_num_txt"
android:layout_width="153dp"
android:layout_width="107dp"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="234dp"
android:layout_marginStart="280dp"
android:layout_marginEnd="4dp"
android:layout_weight="1"
android:gravity="fill_horizontal|center_vertical"
......@@ -73,7 +73,7 @@
android:layout_marginEnd="1dp"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:text="TextView"
android:text="正在取得GPS位置....."
android:textAllCaps="false"
android:textColor="@color/black"
android:textSize="20sp"
......
......@@ -31,4 +31,5 @@ KK 光華路KK
GG 志昇街GG
WA 興達路WA
DD 國華街DD
II 博東路II
\ No newline at end of file
II 博東路II
CY 勤益大道CY
\ No newline at end of file
......@@ -5,4 +5,5 @@ A215 A 01 01 23.4799762 120.4486685 01
N066 N 02 02 23.4894827 120.4303129 01
N068 N 02 02 23.4895994 120.4303028 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