Commit b5ea1753 authored by YONG-LIN SU's avatar YONG-LIN SU

新增巡場模式點選案件跳轉

parent e2b59b69
...@@ -12,6 +12,6 @@ ...@@ -12,6 +12,6 @@
</deviceKey> </deviceKey>
</Target> </Target>
</runningDeviceTargetSelectedWithDropDown> </runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-08-22T03:51:15.557672Z" /> <timeTargetWasSelectedWithDropDown value="2022-08-22T09:24:14.288273800Z" />
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -28,11 +28,13 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe ...@@ -28,11 +28,13 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe
private Map<String, List<Case>> caseMap; private Map<String, List<Case>> caseMap;
private List<String> keys = new ArrayList<>(); private List<String> keys = new ArrayList<>();
private LiveData<Location> currentLocation; private LiveData<Location> currentLocation;
private ReNewNestedAdapter.OnItemClickListener onItemClickListener;
public ReNewListAdapter(Map<String, List<Case>> caseMap, LiveData<Location> location){ public ReNewListAdapter(Map<String, List<Case>> caseMap, LiveData<Location> location, ReNewNestedAdapter.OnItemClickListener onItemClickListener){
this.caseMap = caseMap; this.caseMap = caseMap;
this.keys = new ArrayList<>(caseMap.keySet()); this.keys = new ArrayList<>(caseMap.keySet());
this.currentLocation = location; this.currentLocation = location;
this.onItemClickListener = onItemClickListener;
} }
...@@ -47,7 +49,7 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe ...@@ -47,7 +49,7 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe
public void onBindViewHolder(@NonNull ReNewListViewHolder holder, int position) { public void onBindViewHolder(@NonNull ReNewListViewHolder holder, int position) {
String key = keys.get(position); String key = keys.get(position);
if (caseMap.containsKey(key)){ if (caseMap.containsKey(key)){
holder.setBinding(key,caseMap.get(key), recycledViewPool); holder.setBinding(key,caseMap.get(key), recycledViewPool, onItemClickListener);
} }
} }
...@@ -79,9 +81,9 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe ...@@ -79,9 +81,9 @@ public class ReNewListAdapter extends RecyclerView.Adapter<ReNewListAdapter.ReNe
}); });
} }
void setBinding(String road, List<Case> cases,RecyclerView.RecycledViewPool recycledViewPool){ void setBinding(String road, List<Case> cases,RecyclerView.RecycledViewPool recycledViewPool, ReNewNestedAdapter.OnItemClickListener onItemClickListener){
this.caseList = cases; this.caseList = cases;
ReNewNestedAdapter reNewNestedAdapter = new ReNewNestedAdapter(); ReNewNestedAdapter reNewNestedAdapter = new ReNewNestedAdapter(onItemClickListener);
reNewNestedAdapter.submitList(caseList); reNewNestedAdapter.submitList(caseList);
dataBinding.renewListRecyclerView.setAdapter(reNewNestedAdapter); dataBinding.renewListRecyclerView.setAdapter(reNewNestedAdapter);
dataBinding.renewListRecyclerView.setRecycledViewPool(recycledViewPool); dataBinding.renewListRecyclerView.setRecycledViewPool(recycledViewPool);
......
...@@ -14,8 +14,10 @@ import ecom.android.newparkapp.databinding.RecyclerViewRenewItemBinding; ...@@ -14,8 +14,10 @@ import ecom.android.newparkapp.databinding.RecyclerViewRenewItemBinding;
import ecom.android.newparkapp.entity.Case; import ecom.android.newparkapp.entity.Case;
public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReNewNestedViewHolder> { public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReNewNestedViewHolder> {
public ReNewNestedAdapter(){ private OnItemClickListener onItemClickListener;
public ReNewNestedAdapter(OnItemClickListener onItemClickListener){
super(caseItemCallback); super(caseItemCallback);
this.onItemClickListener = onItemClickListener;
} }
@NonNull @NonNull
...@@ -27,7 +29,7 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN ...@@ -27,7 +29,7 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN
@Override @Override
public void onBindViewHolder(@NonNull ReNewNestedViewHolder holder, int position) { public void onBindViewHolder(@NonNull ReNewNestedViewHolder holder, int position) {
holder.setBinding(getItem(position)); holder.setBinding(getItem(position), onItemClickListener);
} }
public static final DiffUtil.ItemCallback<Case> caseItemCallback = new DiffUtil.ItemCallback<Case>() { public static final DiffUtil.ItemCallback<Case> caseItemCallback = new DiffUtil.ItemCallback<Case>() {
...@@ -49,7 +51,7 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN ...@@ -49,7 +51,7 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN
this.dataBinding = dataBinding; this.dataBinding = dataBinding;
} }
void setBinding(Case thisCase){ void setBinding(Case thisCase, OnItemClickListener onItemClickListener){
int nextAddMinsAway = thisCase.getNextAddMinsAway(); int nextAddMinsAway = thisCase.getNextAddMinsAway();
int parkPeriodColor = Color.BLACK; int parkPeriodColor = Color.BLACK;
if (nextAddMinsAway < 10) if (nextAddMinsAway < 10)
...@@ -60,7 +62,13 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN ...@@ -60,7 +62,13 @@ public class ReNewNestedAdapter extends ListAdapter<Case, ReNewNestedAdapter.ReN
dataBinding.parkPeriod.setTextColor(parkPeriodColor); dataBinding.parkPeriod.setTextColor(parkPeriodColor);
dataBinding.renewItemIcon.setBackgroundResource(R.drawable.icon); dataBinding.renewItemIcon.setBackgroundResource(R.drawable.icon);
dataBinding.getRoot().setOnClickListener(view -> onItemClickListener.onSpaceCaseClick(thisCase.billingNumber2));
} }
} }
public interface OnItemClickListener{
void onSpaceCaseClick(String billingNumber2);
}
} }
...@@ -295,8 +295,9 @@ public class T02StartActivity extends AppCompatActivity { ...@@ -295,8 +295,9 @@ public class T02StartActivity extends AppCompatActivity {
}); });
gpsSearchModeActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { gpsSearchModeActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK){ if (result.getResultCode() == RESULT_OK && result.getData() != null){
String billingNumber2 = result.getData().getStringExtra("BillingNumber2");
t02StartViewModel.go2Page(billingNumber2);
} }
}); });
} }
......
package ecom.android.newparkapp.view; package ecom.android.newparkapp.view;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
...@@ -20,6 +21,7 @@ import java.util.stream.Collectors; ...@@ -20,6 +21,7 @@ import java.util.stream.Collectors;
import ecom.android.newparkapp.R; import ecom.android.newparkapp.R;
import ecom.android.newparkapp.adapter.ReNewListAdapter; import ecom.android.newparkapp.adapter.ReNewListAdapter;
import ecom.android.newparkapp.adapter.ReNewNestedAdapter;
import ecom.android.newparkapp.databinding.ActivityT04RenewListBinding; import ecom.android.newparkapp.databinding.ActivityT04RenewListBinding;
import ecom.android.newparkapp.entity.Case; import ecom.android.newparkapp.entity.Case;
import ecom.android.newparkapp.entity.RenewInfoData; import ecom.android.newparkapp.entity.RenewInfoData;
...@@ -39,6 +41,7 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -39,6 +41,7 @@ public class T04RenewListActivity extends AppCompatActivity {
private ReNewListAdapter reNewListAdapter; private ReNewListAdapter reNewListAdapter;
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();
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -62,7 +65,7 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -62,7 +65,7 @@ public class T04RenewListActivity extends AppCompatActivity {
dataBinding.recyclelist.setLayoutManager(new LinearLayoutManager(this)); dataBinding.recyclelist.setLayoutManager(new LinearLayoutManager(this));
dataBinding.recyclelist.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); dataBinding.recyclelist.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
reNewListAdapter = new ReNewListAdapter(pureCasesGroupByRoad, fusedGpsViewModel.getLocation()); reNewListAdapter = new ReNewListAdapter(pureCasesGroupByRoad, fusedGpsViewModel.getLocation(), reNewNestedItemOnClick);
dataBinding.recyclelist.setAdapter(reNewListAdapter); dataBinding.recyclelist.setAdapter(reNewListAdapter);
//下拉刷新 //下拉刷新
...@@ -118,4 +121,14 @@ public class T04RenewListActivity extends AppCompatActivity { ...@@ -118,4 +121,14 @@ public class T04RenewListActivity extends AppCompatActivity {
} }
} }
} }
private class ReNewNestedItemOnClick implements ReNewNestedAdapter.OnItemClickListener {
@Override
public void onSpaceCaseClick(String billingNumber2) {
Intent intent = getIntent();
intent.putExtra("BillingNumber2", billingNumber2);
setResult(RESULT_OK, intent);
finish();
}
}
} }
\ No newline at end of file
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