package com.basic.security.utils;
|
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.os.Bundle;
|
import android.text.Editable;
|
import android.text.TextUtils;
|
import android.text.TextWatcher;
|
import android.util.DisplayMetrics;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.AdapterView;
|
import android.widget.Button;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.mcivicm.editablespinner.EditableSpinner;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
import static com.basic.security.utils.ActivityUtil.mainActivity;
|
|
public class AlterDialogUtils extends Dialog {
|
private Context context;
|
private String title;
|
private String leftBtnText;
|
private String rightBtnText;
|
private AlterDialogUtils.ClickListenerInterface clickListenerInterface;
|
|
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
public TextView valid_guest_time;
|
public EditableSpinner spinner_d, spinner_h;
|
|
public AlterDialogUtils(Context context, String title, String leftBtnText, String rightBtnText) {
|
super(context, com.basic.security.utils.RUtils.R_style_AlterDialogStyle);
|
this.context = context;
|
this.title = title;
|
this.leftBtnText = leftBtnText;
|
this.rightBtnText = rightBtnText;
|
}
|
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
init();
|
}
|
|
public void init() {
|
LayoutInflater inflater = LayoutInflater.from(context);
|
View view = inflater.inflate(com.basic.security.utils.ResolutionAdaptation.selecttime_dialog(), null);
|
setContentView(view);
|
initViewStatus(view);
|
// TextView tvTitle = view.findViewById(com.basic.security.utils.RUtils.R_id_title);
|
Button tvConfirm = view.findViewById(com.basic.security.utils.RUtils.R_id_leftBtn);
|
TextView tvCancel = view.findViewById(com.basic.security.utils.RUtils.R_id_rightBit);
|
// TextView valid_guest_time = view.findViewById(com.basic.security.utils.RUtils.R_id_valid_guest_time);
|
// tvTitle.setText(title);
|
tvConfirm.setText(leftBtnText);
|
tvCancel.setText(rightBtnText);
|
// valid_guest_time.setText(sdf.format(new Date()));
|
tvConfirm.setOnClickListener(new AlterDialogUtils.clickListener());
|
tvCancel.setOnClickListener(new AlterDialogUtils.clickListener());
|
Window dialogWindow = getWindow();
|
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
|
DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用
|
if (Constants.landscape) {
|
lp.width = (int) (d.widthPixels * 0.4); // 宽度设置为屏幕的0.4
|
} else {
|
lp.width = (int) (d.widthPixels * 0.8); // 高度设置为屏幕的0.6
|
}
|
dialogWindow.setAttributes(lp);
|
SystemUI.hideSystemUI(this);
|
SystemUI.initSystemUIListener(this);
|
}
|
|
public void show() {
|
try {
|
this.getWindow().getDecorView().setVisibility(View.INVISIBLE);
|
SystemUI.hideSystemUI(this);
|
SystemUI.initSystemUIListener(this);
|
super.show();
|
this.getWindow().getDecorView().setVisibility(View.VISIBLE);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void setClickListener(AlterDialogUtils.ClickListenerInterface clickListenerInterface) {
|
this.clickListenerInterface = clickListenerInterface;
|
}
|
|
public interface ClickListenerInterface {
|
void doConfirm();
|
|
void doCancel();
|
}
|
|
public void initViewStatus(View view){
|
|
valid_guest_time = view.findViewById(com.basic.security.utils.RUtils.R_id_valid_guest_time);
|
valid_guest_time.setText(sdf.format(new Date()));
|
Log.v("default-iniView","初始化view:"+ valid_guest_time.getText());
|
final TextView add_h = view.findViewById(com.basic.security.utils.RUtils.R_id_add_h);
|
final TextView reduce_h = view.findViewById(com.basic.security.utils.RUtils.R_id_reduce_h);
|
final TextView add_d = view.findViewById(com.basic.security.utils.RUtils.R_id_add_d);
|
final TextView reduce_d = view.findViewById(com.basic.security.utils.RUtils.R_id_reduce_d);
|
|
add_h.setOnClickListener(new View.OnClickListener(){
|
|
@Override
|
public void onClick(View v) {
|
double d = Float.parseFloat(spinner_h.getText().toString()) + 0.5;
|
spinner_h.setText((Double.toString(d)));
|
addHalfHouse("hour","add");
|
}
|
});
|
reduce_h.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
double d = Float.parseFloat(spinner_h.getText().toString()) - 0.5;
|
spinner_h.setText((Double.toString(d)));
|
addHalfHouse("hour","reduce");
|
}
|
});
|
add_d.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
double d = Float.parseFloat(spinner_d.getText().toString()) + 1;
|
spinner_h.setText((Double.toString(d)));
|
addHalfHouse("day","add");
|
}
|
});
|
reduce_d.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
double d = Float.parseFloat(spinner_d.getText().toString()) - 1;
|
spinner_h.setText((Double.toString(d)));
|
addHalfHouse("day","reduce");
|
}
|
});
|
|
spinner_d = view.findViewById(com.basic.security.utils.RUtils.R_id_editable_spinner_d);
|
|
final String[] items = new String[]{"1", "2", "3", "4"};
|
spinner_d.setDropDownStrings(items);
|
spinner_d.setText("0");
|
spinner_d.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
Toast.makeText(mainActivity(), items[position], Toast.LENGTH_LONG).show();
|
addHalfHouse("spinner","other");
|
}
|
});
|
spinner_d.setOnAfterTextChanged(new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
Log.v("default-beforeChanged","开始输入");
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
Log.v("default-onChanged","文字变化");
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
Log.v("default-afterChange","输入结束");
|
addHalfHouse("spinner","other");
|
}
|
});
|
|
spinner_h = view.findViewById(com.basic.security.utils.RUtils.R_id_editable_spinner_h);
|
|
final String[] items_h = new String[]{"0.5", "1", "1.5", "2"};
|
spinner_h.setDropDownStrings(items_h);
|
spinner_h.setText("1");
|
addHalfHouse("spinner","other");
|
spinner_h.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
Toast.makeText(mainActivity(), items_h[position], Toast.LENGTH_LONG).show();
|
addHalfHouse("spinner","other");
|
}
|
});
|
spinner_h.setOnAfterTextChanged(new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
Log.v("default-beforeChanged","开始输入");
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
Log.v("default-onChanged","文字变化");
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
Log.v("default-afterChange","输入结束");
|
addHalfHouse("spinner","other");
|
}
|
});
|
}
|
|
public void addHalfHouse(String dayOrhour,String type){
|
try {
|
Editable days = spinner_d.getText();
|
Editable hourse = spinner_h.getText();
|
Date currentTime = new Date();
|
|
float df = 0;
|
float hf = 0;
|
|
if(!TextUtils.isEmpty(days)){
|
df = Float.parseFloat(days.toString());
|
}
|
if(!TextUtils.isEmpty(hourse)){
|
hf = Float.parseFloat(hourse.toString());
|
}
|
double ts =(df) * (24*3600*1000) + (hf) * (60*60*1000);
|
if(dayOrhour.equalsIgnoreCase("day")){
|
if(type.equalsIgnoreCase("add")){
|
ts = (df + 1) * (24*3600*1000) + (hf) * (60*60*1000);
|
}else{
|
ts = (df - 1) * (24*3600*1000) + (hf) * (60*60*1000);
|
}
|
}
|
if(dayOrhour.equalsIgnoreCase("hour")){
|
if(type.equalsIgnoreCase("add")){
|
ts = (df) * (24*3600*1000) + (hf + 0.5) * (60*60*1000);
|
}else{
|
ts = (df) * (24*3600*1000) + (hf - 0.5) * (60*60*1000);
|
}
|
}
|
|
long resultTime = (long) (currentTime.getTime() + ts);
|
|
Log.v("default-addHourse","days:"+ sdf.format(resultTime));
|
|
valid_guest_time.setText(sdf.format(resultTime));
|
|
Log.v("default-addHourse","days:"+ days +" hourse:"+ hourse + " current:" + currentTime.getTime());
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
private class clickListener implements View.OnClickListener {
|
public void onClick(View v) {
|
int id = v.getId();
|
switch (id) {
|
case com.basic.security.utils.RUtils.R_id_leftBtn:
|
clickListenerInterface.doConfirm();
|
break;
|
case com.basic.security.utils.RUtils.R_id_rightBit:
|
clickListenerInterface.doCancel();
|
break;
|
}
|
}
|
}
|
|
}
|