Commit 2093ba8f authored by fallenstardust's avatar fallenstardust

删除已被整合的页面和页签

parent 4027d0c7
......@@ -75,9 +75,6 @@ public class DeckManageDialog extends DialogFragment implements YGODeckDialogUti
tab.setIcon(R.drawable.my_deck_square);
tab.setText(R.string.deck_back_up);
break;
case 3:
tab.setIcon(R.drawable.baseline_login_24);
break;
}
......@@ -119,8 +116,6 @@ public class DeckManageDialog extends DialogFragment implements YGODeckDialogUti
return new DeckSquareFragment(mOnDeckMenuListener, onDeckDialogListener);
case 2:
return new DeckSquareMyDeckFragment(mOnDeckMenuListener, onDeckDialogListener);
case 3:
return new MCOnlineManageFragment();
default:
throw new IllegalArgumentException();
}
......@@ -128,7 +123,7 @@ public class DeckManageDialog extends DialogFragment implements YGODeckDialogUti
@Override
public int getItemCount() {
return 4;
return 3;
}
}
......
package cn.garymb.ygomobile.deck_square;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import cn.garymb.ygomobile.deck_square.api_response.LoginResponse;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.SharedPreferenceUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
public class LoginDialog extends Dialog {
private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
public interface LoginListener {
void notifyResult(boolean success, LoginResponse response);
}
private ProgressBar progressBar;
private LoginListener listener;
private EditText etUsername, etPassword;
private Button btnLogin, btnCancel;
public LoginDialog(Context context, LoginListener listener) {
super(context);
this.listener = listener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_login);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
btnLogin = findViewById(R.id.btn_login);
btnCancel = findViewById(R.id.btn_cancel);
btnLogin.setOnClickListener(v -> attemptLogin());
btnCancel.setOnClickListener(v -> dismiss());
progressBar = findViewById(R.id.progressBar);
}
private void attemptLogin() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (username.isEmpty() || password.isEmpty()) {
Toast.makeText(getContext(), "Please enter both username and password", Toast.LENGTH_SHORT).show();
return;
}
progressBar.setVisibility(View.VISIBLE);
btnLogin.setEnabled(false);
btnCancel.setEnabled(false);
VUiKit.defer().when(() -> {
LogUtil.d(TAG, "start fetch");
LoginResponse result = DeckSquareApiUtil.login(username, password);
SharedPreferenceUtil.setServerToken(result.token);
SharedPreferenceUtil.setServerUserId(result.user.id);
return result;
}).fail((e) -> {
Log.e(TAG, e + "");
listener.notifyResult(false, null);
LogUtil.i(TAG, "login fail");
dismiss();
}).done((result) -> {
if (result != null) {
LogUtil.i(TAG, "login done");
listener.notifyResult(true, result);
YGOUtil.showTextToast("Login success!");
} else {
listener.notifyResult(false, null);
}
dismiss();
});
}
}
\ No newline at end of file
package cn.garymb.ygomobile.deck_square;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import cn.garymb.ygomobile.deck_square.api_response.LoginResponse;
import cn.garymb.ygomobile.lite.databinding.FragmentMcOnlineManageBinding;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.SharedPreferenceUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
//管理用户的登录状态、缓存状态
public class MCOnlineManageFragment extends Fragment implements PrivacyDialogFragment.PrivacyAgreementListener {
private FragmentMcOnlineManageBinding binding;
private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
boolean privacAgree = false;
LoginDialog loginDialog = null;
@Override
public View onCreateView(
@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState
) {
binding = FragmentMcOnlineManageBinding.inflate(inflater, container, false);
binding.mcLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!DeckSquareApiUtil.needLogin()) {
return;
}
if (privacAgree) {//如果不同意隐私协议,log提示用户,
loginDialog = new LoginDialog(getContext(), new LoginDialog.LoginListener() {
@Override
public void notifyResult(boolean success, LoginResponse response) {
// Handle login logic
if (success) {
LogUtil.i(TAG, "login success" + SharedPreferenceUtil.getServerToken());
refreshBtn();
//response.token;
}else{
YGOUtil.showTextToast("登录失败:");
}
}
});
loginDialog.show();
} else {
YGOUtil.showTextToast("登录内容需要用户同意协议");
showPrivacyDialog();
}
}
});
//其实仅仅是清除掉本机的token
binding.mcLogoutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferenceUtil.deleteServerToken();
refreshBtn();
}
});
refreshBtn();
return binding.getRoot();
}
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
public void refreshBtn() {
if (DeckSquareApiUtil.getLoginData() != null) {
binding.mcLoginBtn.setText("已登录");
} else {
binding.mcLoginBtn.setText("登录");
}
}
private void showPrivacyDialog() {
PrivacyDialogFragment dialog = new PrivacyDialogFragment();
dialog.setPrivacyAgreementListener(this);
dialog.show(getChildFragmentManager(), "PrivacyDialog");
}
@Override
public void onAgree() {
privacAgree = true;
}
@Override
public void onDisagree() {
privacAgree = false;
}
}
\ No newline at end of file
package cn.garymb.ygomobile.deck_square;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import cn.garymb.ygomobile.lite.R;
public class PrivacyDialogFragment extends DialogFragment {
private PrivacyAgreementListener listener;
public interface PrivacyAgreementListener {
void onAgree();
void onDisagree();
}
public void setPrivacyAgreementListener(PrivacyAgreementListener listener) {
this.listener = listener;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
LayoutInflater inflater = requireActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_privacy, null);
builder.setView(view);
// 禁止点击外部关闭
setCancelable(false);
Button btnAgree = view.findViewById(R.id.btn_agree);
Button btnDisagree = view.findViewById(R.id.btn_disagree);
btnAgree.setOnClickListener(v -> {
if (listener != null) listener.onAgree();
dismiss();
});
btnDisagree.setOnClickListener(v -> {
if (listener != null) listener.onDisagree();
dismiss();
});
return builder.create();
}
@Override
public void onStart() {
super.onStart();
// 设置对话框宽度占屏幕 90%
if (getDialog() != null && getDialog().getWindow() != null) {
DisplayMetrics metrics = new DisplayMetrics();
requireActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = (int) (metrics.widthPixels * 0.9);
getDialog().getWindow().setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
}
\ 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