|
|
@ -4,14 +4,18 @@ import android.content.DialogInterface;
|
|
|
|
import android.os.Build;
|
|
|
|
import android.os.Build;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Handler;
|
|
|
|
import android.os.Handler;
|
|
|
|
|
|
|
|
import android.util.Log;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
|
|
|
|
import android.widget.Button;
|
|
|
|
import android.widget.CheckBox;
|
|
|
|
import android.widget.CheckBox;
|
|
|
|
import android.widget.EditText;
|
|
|
|
import android.widget.EditText;
|
|
|
|
|
|
|
|
import android.widget.ProgressBar;
|
|
|
|
import android.widget.TextView;
|
|
|
|
import android.widget.TextView;
|
|
|
|
import android.widget.Toast;
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.ColorRes;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
@ -19,6 +23,7 @@ import androidx.appcompat.app.AlertDialog;
|
|
|
|
import androidx.fragment.app.DialogFragment;
|
|
|
|
import androidx.fragment.app.DialogFragment;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.thankvinci.CloudKey.Files.FileUtils;
|
|
|
|
import com.thankvinci.CloudKey.NetUtils.NetHandler;
|
|
|
|
import com.thankvinci.CloudKey.NetUtils.NetHandler;
|
|
|
|
import com.thankvinci.CloudKey.NetUtils.NetThread;
|
|
|
|
import com.thankvinci.CloudKey.NetUtils.NetThread;
|
|
|
|
import com.thankvinci.CloudKey.R;
|
|
|
|
import com.thankvinci.CloudKey.R;
|
|
|
@ -26,8 +31,16 @@ import com.thankvinci.CloudKey.Utils.FileHandler;
|
|
|
|
import com.thankvinci.CloudKey.Utils.FileThread;
|
|
|
|
import com.thankvinci.CloudKey.Utils.FileThread;
|
|
|
|
import com.thankvinci.CloudKey.Utils.MyUtils;
|
|
|
|
import com.thankvinci.CloudKey.Utils.MyUtils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import net.lingala.zip4j.exception.ZipException;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
|
|
|
|
|
|
|
|
public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
AlertDialog alertDialog;
|
|
|
|
|
|
|
|
AlertDialog.Builder builder;
|
|
|
|
|
|
|
|
Button posi_btn; //点击解压的按钮
|
|
|
|
//用一个fragment来存当前这个fragment对象
|
|
|
|
//用一个fragment来存当前这个fragment对象
|
|
|
|
Fragment fragment;
|
|
|
|
Fragment fragment;
|
|
|
|
//点击压缩文件弹出来的Dialog
|
|
|
|
//点击压缩文件弹出来的Dialog
|
|
|
@ -37,6 +50,8 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
//用户勾选是否同意将密码上传到数据库
|
|
|
|
//用户勾选是否同意将密码上传到数据库
|
|
|
|
private CheckBox acceptPWD2SQL;
|
|
|
|
private CheckBox acceptPWD2SQL;
|
|
|
|
//用于判断密码来源是否是数据库,是的话勾选checkbox也不会进行上传操作
|
|
|
|
//用于判断密码来源是否是数据库,是的话勾选checkbox也不会进行上传操作
|
|
|
|
|
|
|
|
//加载的圈圈
|
|
|
|
|
|
|
|
private ProgressBar progressBar;
|
|
|
|
private boolean fromSQL;
|
|
|
|
private boolean fromSQL;
|
|
|
|
//点击该文字就连接数据库查找密码
|
|
|
|
//点击该文字就连接数据库查找密码
|
|
|
|
private TextView getPWD;
|
|
|
|
private TextView getPWD;
|
|
|
@ -57,7 +72,7 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
fragment = this;
|
|
|
|
fragment = this;
|
|
|
|
//获取MD5码
|
|
|
|
//获取MD5码
|
|
|
|
Handler handler = new FileHandler(getActivity(),fragment);
|
|
|
|
Handler handler = new FileHandler(getActivity(),fragment);
|
|
|
|
Toast.makeText(getActivity(),"正在获取文件MD5码,可能需要花点时间,这取决于您手机的性能",Toast.LENGTH_SHORT).show();
|
|
|
|
Toast.makeText(getActivity(),"正在获取文件MD5码,可能需要花点时间",Toast.LENGTH_SHORT).show();
|
|
|
|
Thread ft = new Thread(new FileThread(handler,srcFile,desPath,null,FileHandler.FUNCTION_GET_MD5));
|
|
|
|
Thread ft = new Thread(new FileThread(handler,srcFile,desPath,null,FileHandler.FUNCTION_GET_MD5));
|
|
|
|
ft.start();
|
|
|
|
ft.start();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -71,7 +86,7 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public AlertDialog onCreateDialog(Bundle savedInstanceState){
|
|
|
|
public AlertDialog onCreateDialog(Bundle savedInstanceState){
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
|
|
|
builder = new AlertDialog.Builder(getActivity());
|
|
|
|
LayoutInflater inflater = requireActivity().getLayoutInflater();
|
|
|
|
LayoutInflater inflater = requireActivity().getLayoutInflater();
|
|
|
|
View view = inflater.inflate(R.layout.unzip_dialog,null);
|
|
|
|
View view = inflater.inflate(R.layout.unzip_dialog,null);
|
|
|
|
|
|
|
|
|
|
|
@ -88,10 +103,20 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
|
|
|
|
|
|
|
|
acceptPWD2SQL = view.findViewById(R.id.accept_pwd_2_sql);
|
|
|
|
acceptPWD2SQL = view.findViewById(R.id.accept_pwd_2_sql);
|
|
|
|
getPWD = view.findViewById(R.id.getpwd);
|
|
|
|
getPWD = view.findViewById(R.id.getpwd);
|
|
|
|
|
|
|
|
progressBar = view.findViewById(R.id.progress_bar);
|
|
|
|
|
|
|
|
|
|
|
|
fromSQL = false;
|
|
|
|
fromSQL = false;
|
|
|
|
successful = false;
|
|
|
|
successful = false;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if(!FileUtils.isEncrypted(srcFile)){
|
|
|
|
|
|
|
|
//当文件不是加密文件时
|
|
|
|
|
|
|
|
TextView text = view.findViewById(R.id.pwd_text);
|
|
|
|
|
|
|
|
text.setTextColor(getResources().getColor(R.color.grey));
|
|
|
|
|
|
|
|
setNoPWD();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (ZipException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
passwd_edit.setOnClickListener(new View.OnClickListener() {
|
|
|
|
passwd_edit.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -115,10 +140,13 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
acceptPWD2SQL.setOnClickListener(new View.OnClickListener() {
|
|
|
|
acceptPWD2SQL.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
public void onClick(View v) {
|
|
|
|
if (acceptPWD2SQL.isChecked()){
|
|
|
|
try {
|
|
|
|
//Toast.makeText(getActivity(),"勾选同意",Toast.LENGTH_SHORT).show();
|
|
|
|
if(!FileUtils.isEncrypted(srcFile)){
|
|
|
|
}else{
|
|
|
|
acceptPWD2SQL.setChecked(false);
|
|
|
|
//Toast.makeText(getActivity(),"取消勾选",Toast.LENGTH_SHORT).show();
|
|
|
|
Toast.makeText(getActivity(),"不可勾选",Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (ZipException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -135,7 +163,7 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
nt.start();
|
|
|
|
nt.start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
builder.setView(view).setTitle("解压到当前路径").setPositiveButton("解压", new DialogInterface.OnClickListener() {
|
|
|
|
builder.setView(view).setTitle("解压到当前路径").setPositiveButton("解压", new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
@ -143,18 +171,40 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
Handler fHandler = new FileHandler(getActivity(),fragment);
|
|
|
|
Handler fHandler = new FileHandler(getActivity(),fragment);
|
|
|
|
Thread ft = new Thread(new FileThread(fHandler,srcFile,desPath,passwd,FileHandler.FUNCTION_DECOMPRESS));
|
|
|
|
Thread ft = new Thread(new FileThread(fHandler,srcFile,desPath,passwd,FileHandler.FUNCTION_DECOMPRESS));
|
|
|
|
ft.start();
|
|
|
|
ft.start();
|
|
|
|
if (acceptPWD2SQL.isChecked() && !fromSQL){
|
|
|
|
progressBar.setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
//listener.onDialogUnzipClicked();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
listener.onDialogUnzipClicked();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
|
|
|
})
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
builder.setView(view).setTitle("解压到当前路径").setPositiveButton("解压",null)
|
|
|
|
|
|
|
|
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
Toast.makeText(getActivity(),"取消操作",Toast.LENGTH_SHORT).show();
|
|
|
|
//Toast.makeText(getActivity(),"取消操作",Toast.LENGTH_SHORT).show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});;
|
|
|
|
});;
|
|
|
|
return builder.create();
|
|
|
|
alertDialog = builder.create();
|
|
|
|
|
|
|
|
return alertDialog;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onStart(){
|
|
|
|
|
|
|
|
super.onStart();
|
|
|
|
|
|
|
|
if (alertDialog != null){
|
|
|
|
|
|
|
|
Button pb = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
|
|
|
|
|
|
|
|
pb.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
Toast.makeText(v.getContext(),"正在解压,请稍后",Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
progressBar.setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
passwd = passwd_edit.getText().toString();
|
|
|
|
|
|
|
|
Handler fHandler = new FileHandler(getActivity(),fragment);
|
|
|
|
|
|
|
|
Thread ft = new Thread(new FileThread(fHandler,srcFile,desPath,passwd,FileHandler.FUNCTION_DECOMPRESS));
|
|
|
|
|
|
|
|
ft.start();
|
|
|
|
|
|
|
|
progressBar.setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public void setFromSQL(boolean fromSQL){
|
|
|
|
public void setFromSQL(boolean fromSQL){
|
|
|
|
this.fromSQL = fromSQL;
|
|
|
|
this.fromSQL = fromSQL;
|
|
|
@ -191,4 +241,17 @@ public class UnzipDialogFragment extends DialogFragment {
|
|
|
|
public boolean pwdIsEmpty(){
|
|
|
|
public boolean pwdIsEmpty(){
|
|
|
|
return "".equals(getPasswd());
|
|
|
|
return "".equals(getPasswd());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setProgressBar(int vis){
|
|
|
|
|
|
|
|
progressBar.setVisibility(vis);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setNoPWD(){
|
|
|
|
|
|
|
|
getPWD.setClickable(false);
|
|
|
|
|
|
|
|
getPWD.setTextColor(getResources().getColor(R.color.grey));
|
|
|
|
|
|
|
|
passwd_edit.setFocusable(false);
|
|
|
|
|
|
|
|
passwd_edit.setHint("非加密文件");
|
|
|
|
|
|
|
|
acceptPWD2SQL.setChecked(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public Button getPosiBtn(){
|
|
|
|
|
|
|
|
return posi_btn;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|