|
package com.electric.chargingpile.view;
import android.Manifest;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ScreenUtils;
import com.electric.chargingpile.R;
import com.electric.chargingpile.activity.ZhanDetailsNew;
import com.electric.chargingpile.adapter.LockAdapter;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import org.jetbrains.annotations.NotNull;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.EasyPermissions;
import static android.text.Html.FROM_HTML_MODE_LEGACY;
public class LockStatusDialog extends BottomSheetDialogFragment {
private String licensePlate = "";
private String telNum = "10086";
private View.OnClickListener onClickListener;
private static final int RC_TELL_PERM = 124;
public void setOnClickListener(View.OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public String getLicensePlate() {
return licensePlate;
}
public void setLicensePlate(String licensePlate) {
this.licensePlate = licensePlate;
}
public static LockStatusDialog newInstart(){
return new LockStatusDialog();
}
@Override
public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.TransparentVideoDialogFragmentTheme);
}
@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog!=null){
View bottomSheet = dialog.findViewById(com.google.android.material.R.id.design_bottom_sheet);
if (bottomSheet!=null){
ViewGroup.LayoutParams newLayoutParams = bottomSheet.getLayoutParams();
int height = (int) (ScreenUtils.getScreenHeight() * 0.54);
newLayoutParams.height = height;
BottomSheetBehavior<View> behavior = BottomSheetBehavior.from(bottomSheet);
if (behavior!=null){
behavior.setPeekHeight(height);
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
}
}
}
@Nullable
@org.jetbrains.annotations.Nullable
@Override
public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
return LayoutInflater.from(requireContext()).inflate(R.layout.dialog_lock_status, container, false);
}
@Override
public void onViewCreated(@NonNull @NotNull View view, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
TextView tvRefresh = view.findViewById(R.id.tvRefresh);
TextView tvContact = view.findViewById(R.id.tvContact);
TextView tvNum = view.findViewById(R.id.tvNum);
recyclerView.setLayoutManager( new GridLayoutManager(requireContext(),5));
recyclerView.setAdapter(new LockAdapter(requireContext()));
tvNum.setText(Html.fromHtml("空 <font color='#333333'>"+6+"/</font> <font color='#A5A5A5'>"+2+"</font>",FROM_HTML_MODE_LEGACY));
tvContact.setOnClickListener(v->{
//拨打电话
tellTask();
});
tvRefresh.setOnClickListener(v->{
//刷新接口
});
}
@AfterPermissionGranted(RC_TELL_PERM)
public void tellTask() {
if (hasTellPermission()) {
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("tel:" + telNum));
startActivity(intent);
} else {
// Ask for one permission
EasyPermissions.requestPermissions(
this,
"该功能需要开启拨号权限,是否前往开启?",
RC_TELL_PERM,
Manifest.permission.CALL_PHONE);
}
}
private boolean hasTellPermission() {
return EasyPermissions.hasPermissions(requireContext(), Manifest.permission.CALL_PHONE);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
public void show(FragmentManager fragmentManager){
FragmentTransaction ft = fragmentManager.beginTransaction();
Fragment prev = fragmentManager.findFragmentByTag(LockStatusDialog.class.getName());
if (prev != null) {
ft.remove(prev);
}
show(fragmentManager,LockStatusDialog.class.getName());
fragmentManager.executePendingTransactions();
}
}
|