diff --git a/.gitignore b/.gitignore index aa724b7..084bdee 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ .externalNativeBuild .cxx local.properties +gradle-local.properties +platform-tools/ +xposed-module/build/ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c4b21c4..1a47c54 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -101,6 +101,16 @@ + + + + + + + diff --git a/app/src/main/java/com/miraclegarden/smsmessage/ActionConfirmDialog.java b/app/src/main/java/com/miraclegarden/smsmessage/ActionConfirmDialog.java index 0b77b78..d69fc23 100644 --- a/app/src/main/java/com/miraclegarden/smsmessage/ActionConfirmDialog.java +++ b/app/src/main/java/com/miraclegarden/smsmessage/ActionConfirmDialog.java @@ -16,6 +16,7 @@ import com.miraclegarden.smsmessage.databinding.DialogActionConfirmBinding; import com.miraclegarden.smsmessage.model.ApiError; import com.miraclegarden.smsmessage.model.BankInfo; import com.miraclegarden.smsmessage.network.ApiService; +import com.miraclegarden.smsmessage.network.TokenManager; import java.util.ArrayList; import java.util.List; @@ -30,8 +31,10 @@ public class ActionConfirmDialog extends Dialog { int index; DialogActionConfirmBinding actionConfirmBinding; ApiService apiService; + TokenManager tokenManager; List bankList = new ArrayList<>(); BankInfo selectedBank = null; + private boolean localMode = false; public interface OnToActionListener { void toSumbit(AppInfo appInfo); @@ -47,6 +50,7 @@ public class ActionConfirmDialog extends Dialog { this.context = context; this.appInfo = appInfo; this.apiService = new ApiService(context); + this.tokenManager = TokenManager.getInstance(context); } @Override @@ -59,10 +63,19 @@ public class ActionConfirmDialog extends Dialog { actionConfirmBinding.tvAppname.setText(appInfo.getAppName()); actionConfirmBinding.tvPackage.setText(appInfo.getPackageName()); - // 加载银行账户列表 - loadBankList(); + // 未登录时走本地模式,不请求服务器银行账户 + if (!tokenManager.isLoggedIn()) { + setupLocalMode(); + } else { + loadBankList(); + } actionConfirmBinding.sumbitTv.setOnClickListener(view -> { + if (localMode) { + submitLocalMode(); + return; + } + if (selectedBank == null) { Toast.makeText(context, "请选择关联的银行账户", Toast.LENGTH_SHORT).show(); return; @@ -124,14 +137,43 @@ public class ActionConfirmDialog extends Dialog { public void onError(ApiError error) { if (context instanceof android.app.Activity) { ((android.app.Activity) context).runOnUiThread(() -> { - Toast.makeText(context, "加载银行账户失败: " + error.getMessage(), Toast.LENGTH_LONG).show(); - dismiss(); + Toast.makeText(context, "无法加载银行账户,已切换本地模式", Toast.LENGTH_SHORT).show(); + setupLocalMode(); }); } } }); } + private void setupLocalMode() { + localMode = true; + selectedBank = null; + actionConfirmBinding.spinnerBank.setVisibility(View.GONE); + View bankSection = (View) actionConfirmBinding.spinnerBank.getParent(); + if (bankSection != null) { + for (int i = 0; i < ((android.view.ViewGroup) bankSection).getChildCount(); i++) { + ((android.view.ViewGroup) bankSection).getChildAt(i).setVisibility(View.GONE); + } + } + } + + private void submitLocalMode() { + if (TextUtils.isEmpty(appInfo.getBankInfoId())) { + appInfo.setBankInfoId("local:" + appInfo.getPackageName()); + } + if (TextUtils.isEmpty(appInfo.getName())) { + appInfo.setName(appInfo.getAppName()); + } + if (TextUtils.isEmpty(appInfo.getCode())) { + appInfo.setCode(appInfo.getPackageName()); + } + + if (onToActionListener != null) { + dismiss(); + onToActionListener.toSumbit(appInfo); + } + } + private void setupSpinner() { List bankNames = new ArrayList<>(); bankNames.add("请选择银行账户"); diff --git a/app/src/main/java/com/miraclegarden/smsmessage/Activity/AppListActivity.java b/app/src/main/java/com/miraclegarden/smsmessage/Activity/AppListActivity.java index 63b208e..7537544 100644 --- a/app/src/main/java/com/miraclegarden/smsmessage/Activity/AppListActivity.java +++ b/app/src/main/java/com/miraclegarden/smsmessage/Activity/AppListActivity.java @@ -33,11 +33,12 @@ public class AppListActivity extends MiracleGardenActivity { tokenManager = TokenManager.getInstance(this); - if (!tokenManager.isLoggedIn()) { - startActivity(new Intent(this, LoginActivity.class)); - finish(); - return; - } + // 调试用:暂时跳过登录 +// if (!tokenManager.isLoggedIn()) { +// startActivity(new Intent(this, LoginActivity.class)); +// finish(); +// return; +// } initView(); } @@ -44,11 +45,12 @@ public class MainActivity extends MiracleGardenActivity { @Override protected void onResume() { super.onResume(); - if (!tokenManager.isLoggedIn()) { - startActivity(new Intent(this, LoginActivity.class)); - finish(); - return; - } + // 调试用:暂时跳过登录 +// if (!tokenManager.isLoggedIn()) { +// startActivity(new Intent(this, LoginActivity.class)); +// finish(); +// return; +// } updatePermissionStatus(); } diff --git a/app/src/main/java/com/miraclegarden/smsmessage/Activity/NotificationActivity.java b/app/src/main/java/com/miraclegarden/smsmessage/Activity/NotificationActivity.java index 7f25007..f1b47fc 100644 --- a/app/src/main/java/com/miraclegarden/smsmessage/Activity/NotificationActivity.java +++ b/app/src/main/java/com/miraclegarden/smsmessage/Activity/NotificationActivity.java @@ -62,12 +62,13 @@ public class NotificationActivity extends MiracleGardenActivity(this); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); diff --git a/app/src/main/java/com/miraclegarden/smsmessage/Activity/PermissionActivity.java b/app/src/main/java/com/miraclegarden/smsmessage/Activity/PermissionActivity.java index 34d9d10..1a148a2 100644 --- a/app/src/main/java/com/miraclegarden/smsmessage/Activity/PermissionActivity.java +++ b/app/src/main/java/com/miraclegarden/smsmessage/Activity/PermissionActivity.java @@ -29,11 +29,12 @@ public class PermissionActivity extends MiracleGardenActivity