diff --git a/app/debug/output-metadata.json b/app/debug/output-metadata.json new file mode 100644 index 0000000..94ed1e6 --- /dev/null +++ b/app/debug/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.muqingbfq", + "variantName": "debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "2.6.0", + "outputFile": "Cloud_music-debug-v2.6.0.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 376c193..3df2c5d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -52,10 +52,6 @@ - - - - diff --git a/app/src/main/java/com/muqingbfq/Dialog/DialogEditText.java b/app/src/main/java/com/muqingbfq/Dialog/DialogEditText.java new file mode 100644 index 0000000..287520a --- /dev/null +++ b/app/src/main/java/com/muqingbfq/Dialog/DialogEditText.java @@ -0,0 +1,46 @@ +package com.muqingbfq.Dialog; + +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import android.view.LayoutInflater; +import android.widget.ArrayAdapter; +import android.widget.Button; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.google.android.material.dialog.MaterialDialogs; +import com.muqingbfq.databinding.DialogEdittextBinding; + +public class DialogEditText extends MaterialAlertDialogBuilder { + public final DialogEdittextBinding binding; + + public AlertDialog alertDialog; + public DialogEditText(Context context, String[] strings) { + super(context); + binding = DialogEdittextBinding.inflate(LayoutInflater.from(context)); + ArrayAdapter stringArrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1); + for (String s : strings) { + stringArrayAdapter.add(s); + } + binding.edittext.setAdapter(stringArrayAdapter); + setView(binding.getRoot()); + } + + public void setPositiveButton(@Nullable Button.OnClickListener listener) { + binding.Yes.setOnClickListener(listener); + } + + public void setNegativeButton(@Nullable Button.OnClickListener listener) { + binding.No.setOnClickListener(listener); + } + + @Override + public AlertDialog show() { + alertDialog = super.show(); + return alertDialog; + } +} diff --git a/app/src/main/java/com/muqingbfq/HomeSteer.java b/app/src/main/java/com/muqingbfq/HomeSteer.java index b166b27..3da2718 100644 --- a/app/src/main/java/com/muqingbfq/HomeSteer.java +++ b/app/src/main/java/com/muqingbfq/HomeSteer.java @@ -6,13 +6,16 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.text.Editable; +import android.text.TextUtils; import android.view.View; import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.muqingbfq.Dialog.DialogEditText; import com.muqingbfq.fragment.wode; import com.muqingbfq.login.user_logs; import com.muqingbfq.mq.EditViewDialog; @@ -22,6 +25,8 @@ import com.muqingbfq.view.Edit; import org.json.JSONObject; +import java.util.Objects; + public class HomeSteer { home home; ActivityResultLauncher dlintent; @@ -34,7 +39,7 @@ public class HomeSteer { if (result.getResultCode() == Activity.RESULT_OK) { // 处理返回结果 Intent data = result.getData(); - boolean bool = data.getBooleanExtra("bool", false); + boolean bool = Objects.requireNonNull(data).getBooleanExtra("bool", false); if (bool) { Yes(); return; @@ -48,50 +53,55 @@ public class HomeSteer { } public void One() { - MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(home); - materialAlertDialogBuilder.setTitle("引导登陆"); - materialAlertDialogBuilder.setItems(new String[]{"游客", "登陆"}, (dialog, which) -> { - if (which == 0) { - new Thread() { - @Override - public void run() { - super.run(); - //获取游客Cookie - String hq = wl.hq("/register/anonimous"); - try { - JSONObject jsonObject = new JSONObject(hq); - wl.setcookie(jsonObject.getString("cookie")); - home.runOnUiThread(() -> Yes()); - } catch (Exception e) { - home.runOnUiThread(() -> Toast.makeText(home, "游客登陆失败:" + e.getMessage(), Toast.LENGTH_SHORT).show()); - gj.sc(e); + wl.getCookie(); + if (wl.Cookie.isEmpty()) { + MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(home); + materialAlertDialogBuilder.setTitle("引导登陆"); + materialAlertDialogBuilder.setItems(new String[]{"游客", "登陆"}, (dialog, which) -> { + if (which == 0) { + new Thread() { + @Override + public void run() { + super.run(); + //获取游客Cookie + String hq = wl.hq("/register/anonimous"); + try { + JSONObject jsonObject = new JSONObject(hq); + wl.setcookie(jsonObject.getString("cookie")); + home.runOnUiThread(() -> Yes()); + } catch (Exception e) { + home.runOnUiThread(() -> Toast.makeText(home, "游客登陆失败:" + e.getMessage(), Toast.LENGTH_SHORT).show()); + gj.sc(e); + } } - } - }.start(); - } else if (which == 1) { - dlintent.launch(new Intent(home, user_logs.class)); - } - }); - materialAlertDialogBuilder.show(); + }.start(); + } else if (which == 1) { + dlintent.launch(new Intent(home, user_logs.class)); + } + }); + materialAlertDialogBuilder.show(); + }else{ + Yes(); + } } public void Yes() { } + String[] stringIp = new String[]{"https://ncm.nekogan.com", "https://api.csm.sayqz.com"}; + /** * 设置IP地址 */ public void SetIP() { SharedPreferences nickname = home.getSharedPreferences("Set_up", Context.MODE_PRIVATE); - if (nickname.getString("IP", "").isEmpty()) { - EditViewDialog editViewDialog = new EditViewDialog(home, "IP"); - editViewDialog.setMessage("请输入部署了NeteaseCloudMusicApi的服务器地址,\n例如" + - "https://api.csm.sayqz.com"); -// editViewDialog.setPositive() - editViewDialog.buttonb.setEnabled(false); - editViewDialog.editText.setMaxLines(1); - editViewDialog.editText.addTextChangedListener(new Edit.TextWatcher() { + main.api = nickname.getString("IP", ""); + if (TextUtils.isEmpty(main.api)) { + + DialogEditText dialogEditText = getDialogEditText(nickname); + + dialogEditText.binding.edittext.addTextChangedListener(new Edit.TextWatcher() { @Override public void beforeTextChanged(CharSequence var1, int var2, int var3, int var4) { @@ -100,7 +110,7 @@ public class HomeSteer { @Override public void onTextChanged(CharSequence var1, int var2, int var3, int var4) { //正则表达式检查是否为 https://api.csm.sayqz.com这样的 - editViewDialog.buttonb.setEnabled(var1.toString().matches("^(https?://).+[^/]")); + dialogEditText.binding.Yes.setEnabled(var1.toString().matches("^(https?://).+[^/]")); } @Override @@ -108,16 +118,26 @@ public class HomeSteer { } }); - editViewDialog.setPositive(v -> { - main.api = editViewDialog.getEditText(); - nickname.edit().putString("IP", editViewDialog.getEditText()).apply(); - One(); - editViewDialog.dismiss(); - }); - editViewDialog.show(); + dialogEditText.show(); } else { - main.api = nickname.getString("IP", ""); One(); } } + + @NonNull + private DialogEditText getDialogEditText(SharedPreferences nickname) { + DialogEditText dialogEditText = new DialogEditText(home, stringIp); + dialogEditText.setTitle("IP"); + dialogEditText.setMessage("请输入部署了NeteaseCloudMusicApi的服务器地址"); + dialogEditText.setPositiveButton((view) -> { + main.api = dialogEditText.binding.edittext.getText().toString(); + nickname.edit().putString("IP", main.api).apply(); + One(); + dialogEditText.alertDialog.dismiss(); + + }); + dialogEditText.binding.Yes.isEnabled(); + dialogEditText.setNegativeButton((view) -> home.finish()); + return dialogEditText; + } } diff --git a/app/src/main/java/com/muqingbfq/fragment/bflb_db.java b/app/src/main/java/com/muqingbfq/fragment/bflb_db.java index 45bdb73..db25b01 100644 --- a/app/src/main/java/com/muqingbfq/fragment/bflb_db.java +++ b/app/src/main/java/com/muqingbfq/fragment/bflb_db.java @@ -61,7 +61,7 @@ public class bflb_db extends BottomSheetDialog { if (view != null) { // 设置宽度 ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); - layoutParams.width = (int) (getContext().getResources().getDisplayMetrics().widthPixels * 0.6); // 占屏幕宽度的 60% + layoutParams.height = (int) (getContext().getResources().getDisplayMetrics().widthPixels * 0.6); // 占屏幕宽度的 60% view.setLayoutParams(layoutParams); } } @@ -71,12 +71,6 @@ public class bflb_db extends BottomSheetDialog { super.onCreate(savedInstanceState); binding = FragmentBflbDbBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - // 设置高度 -// DisplayMetrics displayMetrics = new DisplayMetrics(); -// WindowManager windowManager = (WindowManager) getContext().getSystemService(WINDOW_SERVICE); -// windowManager.getDefaultDisplay().getMetrics(displayMetrics); -// binding.getRoot().getLayoutParams().height = displayMetrics.heightPixels - displayMetrics.heightPixels / 3; -// binding.getRoot().requestLayout(); // 设置固定的高度(例如 500dp) diff --git a/app/src/main/java/com/muqingbfq/home.java b/app/src/main/java/com/muqingbfq/home.java index c98fc52..a1c557b 100644 --- a/app/src/main/java/com/muqingbfq/home.java +++ b/app/src/main/java/com/muqingbfq/home.java @@ -69,7 +69,7 @@ public class home extends AppCompatActivity { controllerFuture.addListener(() -> { }, MoreExecutors.directExecutor()); - if (Strings.isNullOrEmpty(wl.Cookie)) { + if (Strings.isNullOrEmpty(main.api) || Strings.isNullOrEmpty(wl.Cookie)) { new HomeSteer(this) { @Override public void Yes() { @@ -132,7 +132,7 @@ public class home extends AppCompatActivity { return list.size(); } }); - binding.viewPager.setCurrentItem(0,false); + binding.viewPager.setCurrentItem(0, false); if (!gj.isTablet(this)) { binding.linearLayout4.post(() -> { int height = binding.linearLayout4.getHeight(); @@ -148,13 +148,13 @@ public class home extends AppCompatActivity { MaterialCardView childAt = (MaterialCardView) binding.tablayout.linearLayout.getChildAt(i); if (i == 0) { //背景高亮 - childAt.setCardBackgroundColor(gj.getThemeColor(v.getContext(), com.google.android.material.R.attr.colorPrimaryContainer)); + childAt.setCardBackgroundColor(gj.getThemeColor(v.getContext(), com.google.android.material.R.attr.colorPrimaryContainer)); } else { //背景恢复 childAt.setCardBackgroundColor(gj.getThemeColor(v.getContext(), com.google.android.material.R.attr.colorSurface)); } } - binding.viewPager.setCurrentItem(0,false); + binding.viewPager.setCurrentItem(0, false); }); binding.tablayout.addView("我的", R.drawable.user).setOnClickListener(v -> { for (int i = 0; i < binding.tablayout.sizeView; i++) { @@ -167,7 +167,7 @@ public class home extends AppCompatActivity { childAt.setCardBackgroundColor(gj.getThemeColor(v.getContext(), com.google.android.material.R.attr.colorSurface)); } } - binding.viewPager.setCurrentItem(1,false); + binding.viewPager.setCurrentItem(1, false); }); toolbar(); SearchUI(); diff --git a/app/src/main/java/com/muqingbfq/main.java b/app/src/main/java/com/muqingbfq/main.java index a5c7904..ddeda81 100644 --- a/app/src/main/java/com/muqingbfq/main.java +++ b/app/src/main/java/com/muqingbfq/main.java @@ -29,7 +29,8 @@ import java.util.List; public class main extends Application { public static Application application; public static Handler handler = new Handler(Looper.getMainLooper()); - public static String api = "https://api.csm.sayqz.com"; + public static String api; +// https://ncm.nekogan.com // public static String http = "https://www.muqingkaifazhe.top/muqingbfq.php"; 过时的更新检测 public static SharedPreferences sp; public static SharedPreferences.Editor edit; diff --git a/app/src/main/java/com/muqingbfq/mq/wl.java b/app/src/main/java/com/muqingbfq/mq/wl.java index 668b500..0a4ec56 100644 --- a/app/src/main/java/com/muqingbfq/mq/wl.java +++ b/app/src/main/java/com/muqingbfq/mq/wl.java @@ -31,6 +31,9 @@ public class wl { main.edit.putString("Cookie", cookie); main.edit.commit(); } + public static void getCookie(){ + Cookie = main.sp.getString("Cookie", ""); + } public static String hq(String url) { try { diff --git a/app/src/main/res/layout/dialog_edittext.xml b/app/src/main/res/layout/dialog_edittext.xml new file mode 100644 index 0000000..adff834 --- /dev/null +++ b/app/src/main/res/layout/dialog_edittext.xml @@ -0,0 +1,44 @@ + + + + + + + + + + +