diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index e08f42d..860d833 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -8,7 +8,7 @@
-
+
@@ -39,6 +39,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index fc6c877..1fc8a9b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,7 +18,8 @@ android {
//noinspection OldTargetApi
targetSdk 31
versionCode 1
- versionName "1.6.8"
+ versionName "1.7.0"
+
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@@ -37,6 +38,9 @@ android {
outputFileName = "Cloud_music-${variant.name}-v${variant.versionName}.apk"
}
}
+ viewBinding {
+ enabled = true
+ }
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
diff --git a/app/debug/Cloud_music-debug-v1.6.8.apk b/app/debug/Cloud_music-debug-v1.6.8.apk
deleted file mode 100644
index f9d50a9..0000000
Binary files a/app/debug/Cloud_music-debug-v1.6.8.apk and /dev/null differ
diff --git a/app/debug/output-metadata.json b/app/debug/output-metadata.json
index 94e1f32..3482d42 100644
--- a/app/debug/output-metadata.json
+++ b/app/debug/output-metadata.json
@@ -12,8 +12,8 @@
"filters": [],
"attributes": [],
"versionCode": 1,
- "versionName": "1.6.8",
- "outputFile": "Cloud_music-debug-v1.6.8.apk"
+ "versionName": "1.7.0",
+ "outputFile": "Cloud_music-debug-v1.7.0.apk"
}
],
"elementType": "File"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0e9c3c1..c15fb35 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -52,7 +52,7 @@
diff --git a/app/src/main/java/com/muqingbfq/MediaPlayer.java b/app/src/main/java/com/muqingbfq/MediaPlayer.java
index ce1ab6f..7e7ef67 100644
--- a/app/src/main/java/com/muqingbfq/MediaPlayer.java
+++ b/app/src/main/java/com/muqingbfq/MediaPlayer.java
@@ -18,7 +18,9 @@ import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.muqingbfq.fragment.Media;
+import com.muqingbfq.fragment.bflb_db;
import com.muqingbfq.fragment.bfq_db;
+import com.muqingbfq.fragment.search;
import com.muqingbfq.mq.gj;
public class MediaPlayer {
@@ -178,5 +180,12 @@ public class MediaPlayer {
if (com.muqingbfq.fragment.mp3.lbspq != null) {
com.muqingbfq.fragment.mp3.lbspq.notifyDataSetChanged();
}
+ if (search.lbspq != null) {
+ search.lbspq.notifyDataSetChanged();
+ }
+ if (bflb_db.adapter != null) {
+ bflb_db.adapter.notifyDataSetChanged();
+ gj.sc(1);
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/muqingbfq/activity_search.java b/app/src/main/java/com/muqingbfq/activity_search.java
index ca9e0bb..608b141 100644
--- a/app/src/main/java/com/muqingbfq/activity_search.java
+++ b/app/src/main/java/com/muqingbfq/activity_search.java
@@ -25,7 +25,9 @@ import com.google.android.flexbox.FlexDirection;
import com.google.android.flexbox.FlexWrap;
import com.google.android.flexbox.FlexboxLayoutManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.muqingbfq.databinding.ActivitySearchBinding;
import com.muqingbfq.fragment.search;
+import com.muqingbfq.mq.ActivityToolbar;
import com.muqingbfq.mq.gj;
import com.muqingbfq.mq.wj;
import com.muqingbfq.mq.wl;
@@ -37,25 +39,22 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
-public class activity_search extends AppCompatActivity {
+public class activity_search extends ActivityToolbar {
private EditText editText;
private ArrayAdapter adapter;
-
+ private SearchRecordAdapter recordAdapter;
private JSONObject json = new JSONObject();
private final List json_list = new ArrayList<>();
private final List list = new ArrayList<>();
ListView listPopupWindow;
- public static AppCompatActivity appCompatActivity;
+ ActivitySearchBinding inflate;
@SuppressLint({"RestrictedApi", "NotifyDataSetChanged"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_search);
- appCompatActivity = this;
- setSupportActionBar(findViewById(R.id.toolbar));
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
+ inflate = ActivitySearchBinding.inflate(getLayoutInflater());
+ setContentView(inflate.getRoot());
RecyclerView recyclerView = findViewById(R.id.list_recycler);
FlexboxLayoutManager manager = new FlexboxLayoutManager(this);
//设置主轴排列方式
@@ -64,7 +63,7 @@ public class activity_search extends AppCompatActivity {
manager.setFlexWrap(FlexWrap.WRAP);
manager.setAlignItems(AlignItems.STRETCH);
recyclerView.setLayoutManager(manager);
- SearchRecordAdapter recordAdapter = new SearchRecordAdapter();
+ new SearchRecordAdapter();
recyclerView.setAdapter(recordAdapter);
editText = findViewById(R.id.editview);
@@ -77,7 +76,7 @@ public class activity_search extends AppCompatActivity {
}
return false;
});
- findViewById(R.id.deleat).setOnClickListener(v -> new MaterialAlertDialogBuilder(v.getContext())
+ inflate.deleat.setOnClickListener(v -> new MaterialAlertDialogBuilder(v.getContext())
.setTitle("删除")
.setMessage("清空历史记录?")
.setNegativeButton("取消", null)
@@ -116,7 +115,7 @@ public class activity_search extends AppCompatActivity {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
- if (TextUtils.isEmpty(s)){
+ if (TextUtils.isEmpty(s)) {
dismiss();
return;
}
@@ -146,6 +145,7 @@ public class activity_search extends AppCompatActivity {
}
}.start();
}
+
@Override
public void afterTextChanged(Editable s) {
}
@@ -221,8 +221,9 @@ public class activity_search extends AppCompatActivity {
}
}
if (json_list.isEmpty()) {
- findViewById(R.id.xxbj1).setVisibility(View.INVISIBLE);
+ inflate.xxbj1.setVisibility(View.INVISIBLE);
}
+ recordAdapter = this;
}
@NonNull
@@ -270,5 +271,6 @@ public class activity_search extends AppCompatActivity {
} else {
finish();
}
+ com.muqingbfq.fragment.search.lbspq = null;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/muqingbfq/api/playlist.java b/app/src/main/java/com/muqingbfq/api/playlist.java
index bcc5ca1..8bc53b9 100644
--- a/app/src/main/java/com/muqingbfq/api/playlist.java
+++ b/app/src/main/java/com/muqingbfq/api/playlist.java
@@ -20,6 +20,11 @@ public class playlist extends Thread {
public static final String api = "/playlist/track/all?id=";
@SuppressLint("NotifyDataSetChanged")
public static boolean hq(List list, String uid) {
+ if (uid.equals("mp3_xz.json")) {
+ return playlist.hq_xz(list);
+ } else if (uid.equals("mp3_like.json")) {
+ return playlist.hq_like(list);
+ }
list.clear();
try {
String hq;
@@ -48,7 +53,6 @@ public class playlist extends Thread {
String picUrl = al.getString("picUrl");
list.add(new xm(id, name, zz.toString(), picUrl));
}
-// main.handler.post(new mp3.lbspq_sx());
return true;
} catch (Exception e) {
gj.sc("失败的错误 " + e);
@@ -56,7 +60,7 @@ public class playlist extends Thread {
return false;
}
- public static void hq_like(List list) {
+ public static boolean hq_like(List list) {
list.clear();
try {
JSONObject json = gd.like;
@@ -69,12 +73,14 @@ public class playlist extends Thread {
list.add(new xm(id, name, zz, picUrl));
}
main.handler.post(new mp3.lbspq_sx());
+ return true;
} catch (Exception e) {
gj.sc("失败的错误 " + e);
}
+ return false;
}
- public static void hq_xz(List list) {
+ public static boolean hq_xz(List list) {
list.clear();
try {
JSONArray json = new JSONObject(wj.dqwb(wj.mp3_xz))
@@ -88,10 +94,11 @@ public class playlist extends Thread {
String picUrl = jsonObject.getString("picUrl");
list.add(new xm(id, name, zz, picUrl));
}
-// main.handler.post(new mp3.lbspq_sx());
+ return true;
} catch (Exception e) {
gj.sc("失败的错误 " + e);
wj.sc(wj.mp3_xz);
}
+ return false;
}
}
diff --git a/app/src/main/java/com/muqingbfq/api/resource.java b/app/src/main/java/com/muqingbfq/api/resource.java
index c3cd0b7..4d4ab02 100644
--- a/app/src/main/java/com/muqingbfq/api/resource.java
+++ b/app/src/main/java/com/muqingbfq/api/resource.java
@@ -77,7 +77,6 @@ public class resource {
list.add(new xm("mp3_like.json", "喜欢", R.mipmap.like, true));
list.add(new xm("mp3_xz.json", "下载", R.drawable.icon, true));
try {
- // JSONArray date = jsonObject.getJSONArray("");
JSONObject date = new JSONObject(wj.dqwb(wj.gd_xz));
for (Iterator it = date.keys(); it.hasNext(); ) {
String id = it.next();
diff --git a/app/src/main/java/com/muqingbfq/bfq.java b/app/src/main/java/com/muqingbfq/bfq.java
index e56f6aa..0657ad8 100644
--- a/app/src/main/java/com/muqingbfq/bfq.java
+++ b/app/src/main/java/com/muqingbfq/bfq.java
@@ -3,35 +3,38 @@ package com.muqingbfq;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.os.Bundle;
+import android.view.View;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import com.muqingbfq.databinding.ActivityBfqBinding;
import com.muqingbfq.fragment.Media;
+import com.muqingbfq.mq.gj;
public class bfq extends AppCompatActivity {
@SuppressLint("StaticFieldLeak")
public static AppCompatActivity context;
+
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
- setContentView(R.layout.activity_bfq);
- Toolbar toolbar = findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(R.drawable.end);
+ ActivityBfqBinding inflate = ActivityBfqBinding.inflate(getLayoutInflater());
+ setContentView(inflate.getRoot());
+ Toolbar toolbar = inflate.toolbar;
toolbar.setNavigationOnClickListener(view1 -> finish());
- toolbar.inflateMenu(R.menu.bfq);
toolbar.setOnMenuItemClickListener(item -> {
- if (item.getItemId() == R.id.fx) {
- if (bfqkz.xm != null) {
- com.muqingbfq.mq.gj.fx(this,
- "音乐名称:" + bfqkz.xm.name +
- "\n 作者:" + bfqkz.xm.zz +
- "\n 链接:https://music.163.com/#/song?id=" + bfqkz.xm.id);
- }
+ if (item.getItemId() == R.id.fx && bfqkz.xm != null) {
+ com.muqingbfq.mq.gj.fx(this,
+ "音乐名称:" + bfqkz.xm.name +
+ "\n 作者:" + bfqkz.xm.zz +
+ "\n 链接:https://music.163.com/#/song?id=" + bfqkz.xm.id);
}
return false;
});
@@ -39,8 +42,15 @@ public class bfq extends AppCompatActivity {
Media.setname(bfqkz.xm.name);
Media.setzz(bfqkz.xm.zz);
}
+ inflate.name.setOnLongClickListener(view -> {
+ gj.fz(bfq.this, inflate.name.getText().toString());
+ gj.ts(bfq.this, "复制成功");
+ return false;
+ });
}
+
public static Bitmap bitmap;
+
public static void start(Context context) {
Intent intent = new Intent();
intent.setClass(context, bfq.class);
@@ -49,7 +59,8 @@ public class bfq extends AppCompatActivity {
}
@Override
- public void finish() {
- super.finish();
+ public void onConfigurationChanged(@NonNull Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ Media.view = null;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/muqingbfq/fragment/Media.java b/app/src/main/java/com/muqingbfq/fragment/Media.java
index dab977a..c533063 100644
--- a/app/src/main/java/com/muqingbfq/fragment/Media.java
+++ b/app/src/main/java/com/muqingbfq/fragment/Media.java
@@ -8,6 +8,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
@@ -16,12 +17,13 @@ import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
-import com.bumptech.glide.Glide;
import com.muqingbfq.R;
import com.muqingbfq.api.url;
import com.muqingbfq.bfq;
import com.muqingbfq.bfq_an;
import com.muqingbfq.bfqkz;
+import com.muqingbfq.databinding.FragmentBfqBinding;
+import com.muqingbfq.home;
import com.muqingbfq.main;
import org.json.JSONObject;
@@ -30,7 +32,7 @@ import me.wcy.lrcview.LrcView;
public class Media extends Fragment {
@SuppressLint("StaticFieldLeak")
- public static View view;
+ public static LinearLayout view;
@SuppressLint("StaticFieldLeak")
private static TextView time_a, time_b;
@SuppressLint("StaticFieldLeak")
@@ -84,18 +86,22 @@ public class Media extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
if (view != null) {
- main.handler.post(Media::setImageBitmap);
return view;
}
- view = inflater.inflate(R.layout.fragment_bfq, container, false);
+ FragmentBfqBinding inflate = FragmentBfqBinding.inflate(inflater, container, false);
+ view = inflate.getRoot();
+/* if (home.imageView == null) {
+ home.imageView = new ImageView(home.appCompatActivity);
+ home.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
+ home.imageView.setImageResource(R.drawable.icon);
+ }*/
+ inflate.cardview.addView(home.imageView);
bfq_an.kz kz = new bfq_an.kz();
ImageView kg = view.findViewById(R.id.kg);
kg.setOnClickListener(kz);
view.findViewById(R.id.xyq).setOnClickListener(kz);
view.findViewById(R.id.syq).setOnClickListener(kz);
- ImageView tx = view.findViewById(R.id.mttx);
-
- tdt = view.findViewById(R.id.tdt);
+ tdt = inflate.tdt;
tdt.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
@@ -116,10 +122,9 @@ public class Media extends Fragment {
}
});
- time_a = view.findViewById(R.id.time_a);
- time_b = view.findViewById(R.id.time_b);
+ time_a = inflate.timeA;
+ time_b = inflate.timeB;
//初始化歌词组件
- View kp = view.findViewById(R.id.kp1);
lrcview = getlrcView();
lrcview.setDraggable(true, (view, time) -> {
bfqkz.mt.build.seekTo(Math.toIntExact(time));
@@ -127,6 +132,7 @@ public class Media extends Fragment {
});
if (!isTablet(bfq.context)) {
lrcview.setOnTapListener((view, x, y) -> {
+ View kp = inflate.kp1;
if (kp.getVisibility() == View.VISIBLE) {
kp.setVisibility(View.GONE);
} else {
@@ -135,10 +141,10 @@ public class Media extends Fragment {
});
}
//初始化播放器列表
- view.findViewById(R.id.bfq_list_mp3).
+ inflate.bfqListMp3.
setOnClickListener(view1 -> com.muqingbfq.fragment.bflb_db.start(bfq.context));
- view.findViewById(R.id.like).setOnClickListener(view1 -> {
+ inflate.like.setOnClickListener(view1 -> {
ImageView like = (ImageView) view1;
try {
if (bfqkz.like_bool) {
@@ -160,8 +166,8 @@ public class Media extends Fragment {
e.printStackTrace();
}
});
- ImageView control = view.findViewById(R.id.control);
- control.setOnClickListener(new bfq_an.control(control));
+
+ inflate.control.setOnClickListener(new bfq_an.control(inflate.control));
if (bfqkz.xm != null) {
main.handler.removeCallbacks(bfqkz.mt.updateSeekBar); // 在播放开始时启动更新进度
long duration = bfqkz.mt.build.getDuration();
@@ -175,10 +181,6 @@ public class Media extends Fragment {
if (bfqkz.mt.build.isPlaying()) {
kg.setImageResource(R.drawable.bf);
}
- Glide.with(getContext())
- .load(bfqkz.xm.picurl)
- .error(R.drawable.icon)//图片加载失败后,显示的图片
- .into(tx);
bfq_an.islike(bfq.context);
new Thread() {
@Override
@@ -192,8 +194,7 @@ public class Media extends Fragment {
}
private boolean isTablet(Context context) {
- return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)
- >= Configuration.SCREENLAYOUT_SIZE_LARGE;
+ return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
public static LrcView getlrcView() {
@@ -202,9 +203,11 @@ public class Media extends Fragment {
}
return view.findViewById(R.id.gc);
}
+
public static void loadLyric(String a, String b) {
lrcview.loadLrc(a, b);
}
+
public static void setlike(boolean bool) {
ImageView imageView = view.findViewById(R.id.like);
int color = R.color.text;
@@ -216,13 +219,10 @@ public class Media extends Fragment {
}
public static void setImageBitmap() {
- if (view == null) {
+ if (home.imageView == null) {
return;
}
- ImageView imageView = view.findViewById(R.id.mttx);
- if (imageView != null) {
- main.handler.post(() -> imageView.setImageBitmap(bfq.bitmap));
- }
+ main.handler.post(() -> home.imageView.setImageBitmap(bfq.bitmap));
}
public static void setname(String str) {
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 04d4a11..e397417 100644
--- a/app/src/main/java/com/muqingbfq/fragment/bflb_db.java
+++ b/app/src/main/java/com/muqingbfq/fragment/bflb_db.java
@@ -21,7 +21,7 @@ import com.muqingbfq.yc;
public class bflb_db extends BottomSheetDialog {
public static String gdid;
-
+ public static RecyclerView.Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -55,6 +55,9 @@ public class bflb_db extends BottomSheetDialog {
}
class spq extends RecyclerView.Adapter {
+ public spq() {
+ adapter = this;
+ }
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -73,7 +76,7 @@ public class bflb_db extends BottomSheetDialog {
}
holder.name.setTextColor(color);
holder.zz.setTextColor(color);
- holder.view.setOnClickListener(view -> {
+ holder.itemView.setOnClickListener(view -> {
if (bfqkz.xm != x) {
bfqkz.xm = x;
new url(x);
@@ -87,4 +90,9 @@ public class bflb_db extends BottomSheetDialog {
}
}
+ @Override
+ public void dismiss() {
+ super.dismiss();
+ adapter = null;
+ }
}
diff --git a/app/src/main/java/com/muqingbfq/fragment/gd.java b/app/src/main/java/com/muqingbfq/fragment/gd.java
index 1e1c4f2..32a58e6 100644
--- a/app/src/main/java/com/muqingbfq/fragment/gd.java
+++ b/app/src/main/java/com/muqingbfq/fragment/gd.java
@@ -7,13 +7,14 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
@@ -27,6 +28,7 @@ import com.muqingbfq.bfqkz;
import com.muqingbfq.list.list_gd;
import com.muqingbfq.main;
import com.muqingbfq.mq.wj;
+import com.muqingbfq.xm;
import org.json.JSONException;
import org.json.JSONObject;
@@ -34,22 +36,22 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
-import com.muqingbfq.xm;
-
public class gd extends Fragment {
public static String gdid;
- public static BaseAdapter lbspq;
- public static List list;
+ public static RecyclerView.Adapter lbspq;
+ public List list = new ArrayList<>();
public static JSONObject like = new JSONObject();
- GridView gridView;
+ RecyclerView gridView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gd, container, false);
- list = new ArrayList<>();
- lbspq = new baseadapter(view.getContext());
+ lbspq = new baseadapter(view.getContext(),list);
gridView = view.findViewById(R.id.wgbj);
+ int k = (int) (main.k / getResources().getDisplayMetrics().density + 0.5f);
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), k / 120);
+ gridView.setLayoutManager(gridLayoutManager);
gridView.setAdapter(lbspq);
if (gdid == null) {
gdid = main.mp3_csh;
@@ -64,13 +66,13 @@ public class gd extends Fragment {
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
- list.clear();
- lbspq.notifyDataSetChanged();
new thread(tab.getText().toString());
}
+
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
+
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
@@ -85,68 +87,47 @@ public class gd extends Fragment {
return view;
}
- class baseadapter extends BaseAdapter {
+ public static class baseadapter extends RecyclerView.Adapter {
Context context;
- LayoutInflater layoutInflater;
-
- public baseadapter(Context context) {
+ List list;
+ public baseadapter(Context context, List list) {
this.context = context;
- layoutInflater = LayoutInflater.from(context);
+ this.list = list;
+ }
+ @NonNull
+ @Override
+ public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(context)
+ .inflate(R.layout.list_gd, parent, false);
+ return new VH(view);
}
@Override
- public int getCount() {
- return list.size();
- }
-
- @Override
- public Object getItem(int i) {
- return list.get(i);
- }
-
- @Override
- public long getItemId(int i) {
- return i;
- }
-
- @SuppressLint({"ResourceAsColor", "InflateParams", "ClickableViewAccessibility"})
- @Override
- public View getView(int i, View view, ViewGroup viewGroup) {
- ViewHoder viewHoder;
- xm xm = list.get(i);
- if (view == null) {
- viewHoder = new ViewHoder();
- view = layoutInflater.inflate(R.layout.list_gd, null, false);
- viewHoder.textView = view.findViewById(R.id.wb1);
- viewHoder.imageView = view.findViewById(R.id.fh);
- viewHoder.cardView = view.findViewById(R.id.cardview);
- viewHoder.kg = view.findViewById(R.id.kg);
- view.setTag(viewHoder);
- } else {
- viewHoder = (ViewHoder) view.getTag();
- }
+ public void onBindViewHolder(@NonNull VH holder, int position) {
+ xm xm = list.get(position);
list_gd gd = new list_gd(xm);
- viewHoder.cardView.setOnClickListener(gd);
- viewHoder.cardView.setOnLongClickListener(gd);
- viewHoder.textView.setText(xm.name);
- viewHoder.kg.setOnClickListener(view1 -> {
+ holder.cardView.setOnClickListener(gd);
+ holder.cardView.setOnLongClickListener(gd);
+ holder.textView.setText(xm.name);
+ holder.kg.setOnClickListener(view1 -> {
ImageView tx = (ImageView) view1;
new Thread() {
+ @SuppressLint("NotifyDataSetChanged")
@Override
public void run() {
super.run();
- boolean an=playlist.hq(bfqkz.list, xm.id);
- main.handler.post(() -> {
- if (an) {
- bfq_an.xyq();
- tx.setImageResource(R.drawable.bf);
- main.edit.putString(main.mp3, xm.id);
- main.edit.commit();
- main.mp3_csh = gdid = xm.id;
- }
- com.muqingbfq.fragment.gd.lbspq.notifyDataSetChanged();
- });
- }
+ boolean an = playlist.hq(bfqkz.list, xm.id);
+ main.handler.post(() -> {
+ if (an) {
+ bfq_an.xyq();
+ tx.setImageResource(R.drawable.bf);
+ main.edit.putString(main.mp3, xm.id);
+ main.edit.commit();
+ main.mp3_csh = gdid = xm.id;
+ }
+ com.muqingbfq.fragment.gd.lbspq.notifyDataSetChanged();
+ });
+ }
}.start();
});
int color = ContextCompat.getColor(context, R.color.text);
@@ -157,19 +138,31 @@ public class gd extends Fragment {
} else if (xm.cz) {
color = ContextCompat.getColor(context, R.color.text_cz_tm);
}
- viewHoder.kg.setImageDrawable(color_kg);
- viewHoder.textView.setTextColor(color);
+ holder.kg.setImageDrawable(color_kg);
+ holder.textView.setTextColor(color);
Glide.with(context).load(xm.picurl).apply(new RequestOptions().placeholder(R.drawable.icon))
- .into(viewHoder.imageView);
-// new wl(xm.picurl, Glide.with(context)).loadImage(bitmap -> viewHoder.imageView.setImageBitmap(bitmap));
- return view;
+ .into(holder.imageView);
}
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
}
- class ViewHoder {
+ static class VH extends RecyclerView.ViewHolder {
TextView textView;
ImageView imageView, kg;
MaterialCardView cardView;
+
+ public VH(@NonNull View itemView) {
+ super(itemView);
+ textView = itemView.findViewById(R.id.wb1);
+ imageView = itemView.findViewById(R.id.fh);
+ cardView = itemView.findViewById(R.id.cardview);
+ kg = itemView.findViewById(R.id.kg);
+ }
}
class thread extends Thread {
@@ -177,9 +170,11 @@ public class gd extends Fragment {
public thread(String name) {
this.name = name;
+ list.clear();
start();
}
+ @SuppressLint("NotifyDataSetChanged")
@Override
public void run() {
super.run();
diff --git a/app/src/main/java/com/muqingbfq/fragment/mp3.java b/app/src/main/java/com/muqingbfq/fragment/mp3.java
index 019f75f..be32e1d 100644
--- a/app/src/main/java/com/muqingbfq/fragment/mp3.java
+++ b/app/src/main/java/com/muqingbfq/fragment/mp3.java
@@ -107,16 +107,13 @@ public class mp3 extends AppCompatActivity {
}
holder.name.setTextColor(color);
holder.zz.setTextColor(color);
- holder.view.setOnClickListener(view -> {
+ holder.itemView.setOnClickListener(view -> {
if (bfqkz.xm == null || !bfqkz.xm.id.equals(x.id)) {
bfqkz.xm = x;
new url(x);
}
- bfqkz.list.clear();
- int size = list.size();
- for (int i = 0; i < size; i++) {
- bfqkz.list.add(list.get(i));
- }
+ bfqkz.list.clear();
+ bfqkz.list.addAll(list);
bfq.start(mp3.this);
});
}
diff --git a/app/src/main/java/com/muqingbfq/fragment/search.java b/app/src/main/java/com/muqingbfq/fragment/search.java
index edbd862..4085886 100644
--- a/app/src/main/java/com/muqingbfq/fragment/search.java
+++ b/app/src/main/java/com/muqingbfq/fragment/search.java
@@ -11,17 +11,20 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.google.android.material.tabs.TabLayout;
import com.muqingbfq.R;
-import com.muqingbfq.activity_search;
import com.muqingbfq.api.url;
import com.muqingbfq.bfq;
import com.muqingbfq.bfqkz;
+import com.muqingbfq.databinding.FragmentSearchBinding;
import com.muqingbfq.list.MyViewHoder;
import com.muqingbfq.main;
import com.muqingbfq.mq.gj;
+import com.muqingbfq.mq.wj;
import com.muqingbfq.mq.wl;
import com.muqingbfq.xm;
@@ -32,50 +35,72 @@ import java.util.ArrayList;
import java.util.List;
public class search extends Fragment {
- View view;
- RecyclerView.Adapter lbspq;
+ public static RecyclerView.Adapter lbspq;
List list = new ArrayList<>();
+ private String name;
+
+ FragmentSearchBinding inflate;
+ private int i = 0;
+
@Nullable
@Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- view = inflater.inflate(R.layout.fragment_search, container, false);
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+ inflate = FragmentSearchBinding.inflate(inflater, container, false);
+ View view = inflate.getRoot();
TypedValue typedValue = new TypedValue();
requireContext().getTheme().resolveAttribute(android.R.attr.windowBackground, typedValue, true);
// 设置背景颜色
- view.setBackgroundColor(typedValue.data);
- RecyclerView lb = view.findViewById(R.id.recyclerview);
- LinearLayoutManager manager = new LinearLayoutManager(getContext());
- lb.setLayoutManager(manager);
lbspq = new spq();
- lb.setAdapter(lbspq);
+ view.setBackgroundColor(typedValue.data);
+ inflate.tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+// 当用户再次选择已选择的选项卡时调用。
+ search.this.i = tab.getPosition();
+ setStart(name);
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {
+// 当选项卡退出选定状态时调用。
+ }
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {
+// 当选项卡进入选定状态时调用。
+
+
+ }
+ });
setVisibility(false);
return view;
}
public void setVisibility(boolean bool) {
if (bool) {
- view.setVisibility(View.VISIBLE);
+ inflate.getRoot().setVisibility(View.VISIBLE);
} else {
- view.setVisibility(View.GONE);
+ inflate.getRoot().setVisibility(View.GONE);
}
}
public boolean getVisibility() {
- return view.isShown();
+ return inflate.getRoot().isShown();
}
public void setStart(String name) {
setVisibility(true);
- list.clear();
+ gj.sc(i);
new start(name);
}
public class start extends Thread {
- String name;
-
public start(String name) {
- this.name = name;
+ list.clear();
+ search.this.name = name;
+
start();
}
@@ -83,41 +108,85 @@ public class search extends Fragment {
@Override
public void run() {
super.run();
- String hq = wl.hq("/search?keywords=" + name);
- try {
- JSONArray jsonArray = new JSONObject(hq).getJSONObject("result")
- .getJSONArray("songs");
- int length = jsonArray.length();
- for (int i = 0; i < length; i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String id = jsonObject.getString("id");
- String name = jsonObject.getString("name");
- JSONArray artists = jsonObject.getJSONArray("artists");
- int length1 = artists.length();
- StringBuilder zz = null;
- for (int j = 0; j < length1; j++) {
- JSONObject josn = artists.getJSONObject(j);
- String name_zz = josn.getString("name");
- if (zz == null) {
- zz = new StringBuilder(name_zz);
- } else {
- zz.append("/").append(name_zz);
- }
- }
- list.add(new xm(id, name, zz.toString(), ""));
- }
- main.handler.post(() -> lbspq.notifyDataSetChanged());
- } catch (Exception e) {
- gj.sc(e);
+ if (i == 0) {
+ mp3();
+ } else if (i == 1) {
+ gd();
}
+ main.handler.post(() -> {
+ if (i == 0) {
+ inflate.recyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
+ inflate.recyclerview.setAdapter(new spq());
+ } else if (i == 1) {
+ int k = (int) (main.k / getResources().getDisplayMetrics().density + 0.5f);
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 3);
+ inflate.recyclerview.setLayoutManager(gridLayoutManager);
+ inflate.recyclerview.setAdapter(new gd.baseadapter(getContext(), list));
+ }
+// lbspq.notifyDataSetChanged();
+ });
+ }
+ }
+
+ private void mp3() {
+ String hq = wl.hq("/search?keywords=" + name + "&type=1");
+ try {
+ JSONArray jsonArray = new JSONObject(hq).getJSONObject("result")
+ .getJSONArray("songs");
+ int length = jsonArray.length();
+ for (int i = 0; i < length; i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String id = jsonObject.getString("id");
+ String name = jsonObject.getString("name");
+ JSONArray artists = jsonObject.getJSONArray("artists");
+ int length1 = artists.length();
+ StringBuilder zz = null;
+ for (int j = 0; j < length1; j++) {
+ JSONObject josn = artists.getJSONObject(j);
+ String name_zz = josn.getString("name");
+ if (zz == null) {
+ zz = new StringBuilder(name_zz);
+ } else {
+ zz.append("/").append(name_zz);
+ }
+ }
+ list.add(new xm(id, name, zz.toString(), ""));
+ }
+ } catch (Exception e) {
+ gj.sc(e);
+ }
+ }
+
+ private void gd() {
+ String hq = wl.hq("/search?keywords=" + name + "&type=1000");
+ try {
+ JSONArray jsonArray = new JSONObject(hq).getJSONObject("result")
+ .getJSONArray("playlists");
+ int length = jsonArray.length();
+ for (int i = 0; i < length; i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String id = jsonObject.getString("id");
+ String name = jsonObject.getString("name");
+ String coverImgUrl = jsonObject.getString("coverImgUrl");
+// gj.sc(name);
+ list.add(new xm(id, name, coverImgUrl, wj.cz(wj.gd + id)));
+ }
+
+ } catch (Exception e) {
+ gj.sc(e);
}
}
class spq extends RecyclerView.Adapter {
+ public spq() {
+ lbspq = this;
+ }
+
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_mp3, parent, false);
+ View view = LayoutInflater.
+ from(parent.getContext()).inflate(R.layout.list_mp3, parent, false);
return new MyViewHoder(view);
}
@@ -132,7 +201,7 @@ public class search extends Fragment {
}
holder.name.setTextColor(color);
holder.zz.setTextColor(color);
- holder.view.setOnClickListener(view1 -> {
+ holder.itemView.setOnClickListener(view1 -> {
if (bfqkz.xm == null || !bfqkz.xm.id.equals(x.id)) {
bfqkz.xm = x;
new url(x);
@@ -145,7 +214,7 @@ public class search extends Fragment {
}
}
bfqkz.mt.start();
- bfq.start(activity_search.appCompatActivity);
+ bfq.start(getContext());
});
}
diff --git a/app/src/main/java/com/muqingbfq/home.java b/app/src/main/java/com/muqingbfq/home.java
index ef05188..949f5ba 100644
--- a/app/src/main/java/com/muqingbfq/home.java
+++ b/app/src/main/java/com/muqingbfq/home.java
@@ -7,6 +7,7 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
+import android.widget.ImageView;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
@@ -21,6 +22,7 @@ import com.muqingbfq.mq.gj;
public class home extends AppCompatActivity {
@SuppressLint("StaticFieldLeak")
public static AppCompatActivity appCompatActivity;
+ public static ImageView imageView;
@SuppressLint({"CommitTransaction", "ObsoleteSdkInt"})
@Override
@@ -30,7 +32,14 @@ public class home extends AppCompatActivity {
setContentView(R.layout.activity_home);
appCompatActivity = this;
new start();
- Media.view = null;
+ if (imageView == null) {
+ imageView = new ImageView(this);
+ imageView.setScaleType(ImageView.ScaleType.FIT_XY);
+ imageView.setImageResource(R.drawable.icon);
+ }
+ if (bfq.bitmap != null) {
+ Media.setImageBitmap();
+ }
try {
//初始化工具栏
Toolbar toolbar = findViewById(R.id.toolbar);
@@ -61,6 +70,7 @@ public class home extends AppCompatActivity {
}
private static Intent serviceIntent;
+
@Override
protected void onPause() {
super.onPause();
@@ -81,6 +91,7 @@ public class home extends AppCompatActivity {
}
private long time;
+
@Override
public void onBackPressed() {
if (bfqkz.mt.isPlaying()) {
diff --git a/app/src/main/java/com/muqingbfq/list/MyViewHoder.java b/app/src/main/java/com/muqingbfq/list/MyViewHoder.java
index be8a866..dd66c4e 100644
--- a/app/src/main/java/com/muqingbfq/list/MyViewHoder.java
+++ b/app/src/main/java/com/muqingbfq/list/MyViewHoder.java
@@ -11,16 +11,13 @@ import com.muqingbfq.R;
public class MyViewHoder extends RecyclerView.ViewHolder {
public TextView name, zz;
- public View view;
-
public MyViewHoder(@NonNull View itemView) {
super(itemView);
- view = itemView;
name = itemView.findViewById(R.id.wb1);
zz = itemView.findViewById(R.id.zz);
}
public Context getContext() {
- return view.getContext();
+ return itemView.getContext();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/muqingbfq/login/user_editing.java b/app/src/main/java/com/muqingbfq/login/user_editing.java
index 4637e33..5d82161 100644
--- a/app/src/main/java/com/muqingbfq/login/user_editing.java
+++ b/app/src/main/java/com/muqingbfq/login/user_editing.java
@@ -23,6 +23,7 @@ import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide;
import com.muqingbfq.R;
+import com.muqingbfq.databinding.ActivityUserEditingBinding;
import com.muqingbfq.main;
import com.muqingbfq.mq.ActivityToolbar;
import com.muqingbfq.mq.gj;
@@ -46,9 +47,9 @@ public class user_editing extends ActivityToolbar {
//头像,用户名,签名,性别,背景
ImageView imageViewa;
EditText edit_name, edit_qianming;
- AutoCompleteTextView autoCompleteTextView;
ImageView imageViewb;
String file_a, file_b;
+ ActivityUserEditingBinding binding;
@SuppressLint("CheckResult")
ActivityResultLauncher setimagea =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
@@ -86,11 +87,11 @@ public class user_editing extends ActivityToolbar {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_user_editing);
+ binding = ActivityUserEditingBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
imageViewa = findViewById(R.id.image1);
edit_name = findViewById(R.id.edit_name);
edit_qianming = findViewById(R.id.edit_qianming);
- autoCompleteTextView = findViewById(R.id.autoComplete);
imageViewb = findViewById(R.id.image2);
new Thread() {
@Override
@@ -110,6 +111,13 @@ public class user_editing extends ActivityToolbar {
Glide.with(user_editing.this)
.load(string.cover())
.into(imageViewb);
+ String gender = string.gender();
+ if (gender.equals("1")) {
+ gender = "男";
+ } else {
+ gender = "女";
+ }
+ binding.autoComplete.setText(gender);
});
} catch (Exception e) {
gj.sc(e);
diff --git a/app/src/main/java/com/muqingbfq/login/user_logs.java b/app/src/main/java/com/muqingbfq/login/user_logs.java
index 686edf3..d89f414 100644
--- a/app/src/main/java/com/muqingbfq/login/user_logs.java
+++ b/app/src/main/java/com/muqingbfq/login/user_logs.java
@@ -28,6 +28,8 @@ import com.muqingbfq.mq.wl;
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.regex.Pattern;
+
public class user_logs extends AppCompatActivity {
EditText edituser, editpassword;
@@ -98,7 +100,7 @@ public class user_logs extends AppCompatActivity {
return bitmap;
}
-
+ String isEmail="false";
public String account, password;
class CloudUser extends Thread {
@@ -110,6 +112,10 @@ public class user_logs extends AppCompatActivity {
}
user_logs.this.account = account;
user_logs.this.password = password;
+ Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
+ if (pattern.matcher(account).matches()) {
+ isEmail = "true";
+ }
start();
}
@@ -122,7 +128,7 @@ public class user_logs extends AppCompatActivity {
"account", "passWord", "appID", "isEmail"
},
new String[]{
- account, password, UUID, ""
+ account, password, UUID, isEmail
});
gj.sc(post);
if (TextUtils.isEmpty(post)) {
@@ -148,7 +154,7 @@ public class user_logs extends AppCompatActivity {
"account", "passWord", "appID", "isEmail"
},
new String[]{
- account, password, UUID, ""
+ account, password, UUID, isEmail
});
gj.sc(jsonpost);
if (!TextUtils.isEmpty(jsonpost.toString()) &&
@@ -170,8 +176,9 @@ public class user_logs extends AppCompatActivity {
"account", "key", "appID", "isEmail"
},
new String[]{
- account, editViewDialog.getEditText(), UUID, "false"
+ account, editViewDialog.getEditText(), UUID, isEmail
});
+
gj.sc(jsonpost.toString());
if (!TextUtils.isEmpty(jsonpost.toString())) {
try {
diff --git a/app/src/main/java/com/muqingbfq/login/user_message.java b/app/src/main/java/com/muqingbfq/login/user_message.java
index 7c3c7b0..e60fadd 100644
--- a/app/src/main/java/com/muqingbfq/login/user_message.java
+++ b/app/src/main/java/com/muqingbfq/login/user_message.java
@@ -69,8 +69,9 @@ public class user_message extends Thread {
if (cover.startsWith("..")) {
cover = "https://rust.coldmint.top" + cover.substring(2);
}
+ String gender = data.getString("gender");
return new string(new String[]{
- headIcon, account, userName, introduce, cover
+ headIcon, account, userName, introduce, cover, gender
});
}
return null;
@@ -101,6 +102,8 @@ public class user_message extends Thread {
public String cover() {
return strings[4];
}
-
+ public String gender() {
+ return strings[5];
+ }
}
}
diff --git a/app/src/main/java/com/muqingbfq/mq/ActivityToolbar.java b/app/src/main/java/com/muqingbfq/mq/ActivityToolbar.java
index 4ad5f22..18c7fb6 100644
--- a/app/src/main/java/com/muqingbfq/mq/ActivityToolbar.java
+++ b/app/src/main/java/com/muqingbfq/mq/ActivityToolbar.java
@@ -28,4 +28,10 @@ public class ActivityToolbar extends AppCompatActivity {
super.setContentView(view);
setToolbar();
}
+
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ setToolbar();
+ }
}
diff --git a/app/src/main/java/com/muqingbfq/mq/NotificationManagerCompat.java b/app/src/main/java/com/muqingbfq/mq/NotificationManagerCompat.java
index 2b0f665..77e9979 100644
--- a/app/src/main/java/com/muqingbfq/mq/NotificationManagerCompat.java
+++ b/app/src/main/java/com/muqingbfq/mq/NotificationManagerCompat.java
@@ -10,7 +10,6 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.support.v4.media.session.PlaybackStateCompat;
@@ -24,7 +23,7 @@ import com.muqingbfq.R;
import com.muqingbfq.bfq;
import com.muqingbfq.bfqkz;
import com.muqingbfq.fragment.Media;
-import com.muqingbfq.start;
+import com.muqingbfq.home;
import com.muqingbfq.yc;
public class NotificationManagerCompat {
@@ -52,7 +51,7 @@ public class NotificationManagerCompat {
// 设置启动的程序,如果存在则找出,否则新的启动
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
- intent.setComponent(new ComponentName(context, start.class));//用ComponentName得到class对象
+ intent.setComponent(new ComponentName(context, home.class));//用ComponentName得到class对象
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);// 关键的一步,设置启动模式,两种情况
PendingIntent pendingIntent = getActivity(context, intent);
@@ -133,15 +132,10 @@ public class NotificationManagerCompat {
private NotificationCompat.Builder getNotificationBuilder(Context context) {
// 适用于Android 8.0及以上版本
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
return new NotificationCompat.Builder(context, CHANNEL_ID);
- } else {
- // Android 7.1及以下版本
- return new NotificationCompat.Builder(context);
- }
}
- @SuppressLint("UnspecifiedImmutableFlag")
private PendingIntent getBroadcast(Context context, Intent intent) {
int flag;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
@@ -150,13 +144,8 @@ public class NotificationManagerCompat {
flag = PendingIntent.FLAG_UPDATE_CURRENT;
}
return PendingIntent.getBroadcast(context, 0, intent, flag);
-/* if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
- return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
- } else {
- return PendingIntent.getBroadcast(context, 0, intent, 0);
- }*/
}
- @SuppressLint("UnspecifiedImmutableFlag")
+
private PendingIntent getActivity(Context context, Intent intent) {
int flag;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
diff --git a/app/src/main/java/com/muqingbfq/mq/gj.java b/app/src/main/java/com/muqingbfq/mq/gj.java
index 402498c..7af6f3c 100644
--- a/app/src/main/java/com/muqingbfq/mq/gj.java
+++ b/app/src/main/java/com/muqingbfq/mq/gj.java
@@ -1,5 +1,7 @@
package com.muqingbfq.mq;
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -45,6 +47,19 @@ public class gj {
shareIntent.putExtra(Intent.EXTRA_TEXT, str);
context.startActivity(shareIntent);
}
+ /**
+ * 复制文字到剪切板
+ * @param text
+ */
+ public static void fz(Context context,String text){
+ ClipboardManager systemService =
+ (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
+ // 创建能够存入剪贴板的ClipData对象
+ //‘Label’这是任意文字标签
+ ClipData mClipData = ClipData.newPlainText("Label", text);
+ //将ClipData数据复制到剪贴板:
+ systemService.setPrimaryClip(mClipData);
+ }
public static boolean isWiFiConnected() {
try {
diff --git a/app/src/main/java/com/muqingbfq/start.java b/app/src/main/java/com/muqingbfq/start.java
index d7b94ed..d761036 100644
--- a/app/src/main/java/com/muqingbfq/start.java
+++ b/app/src/main/java/com/muqingbfq/start.java
@@ -1,16 +1,8 @@
package com.muqingbfq;
-import android.content.Intent;
-import android.os.Build;
-import android.os.Bundle;
import android.util.DisplayMetrics;
-import androidx.annotation.RequiresApi;
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.muqingbfq.login.visitor;
import com.muqingbfq.mq.wj;
-import com.muqingbfq.mq.wl;
public class start {
public start() {
diff --git a/app/src/main/java/com/muqingbfq/view/TextView.java b/app/src/main/java/com/muqingbfq/view/TextView.java
new file mode 100644
index 0000000..5ee4292
--- /dev/null
+++ b/app/src/main/java/com/muqingbfq/view/TextView.java
@@ -0,0 +1,36 @@
+package com.muqingbfq.view;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+
+public class TextView extends androidx.appcompat.widget.AppCompatTextView {
+ public TextView(@NonNull Context context) {
+ super(context);
+ initView();
+ }
+
+
+ public TextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ initView();
+ }
+
+ public TextView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ initView();
+ }
+
+ private void initView() {
+ this.setEllipsize(TextUtils.TruncateAt.MARQUEE);
+ this.setSingleLine(true);
+ this.setMarqueeRepeatLimit(-1);
+ }
+
+ @Override
+ public boolean isFocused() {
+ return true;
+ }
+}
diff --git a/app/src/main/res/layout-land/fragment_bfq.xml b/app/src/main/res/layout-land/fragment_bfq.xml
index 458a852..ca5fdb5 100644
--- a/app/src/main/res/layout-land/fragment_bfq.xml
+++ b/app/src/main/res/layout-land/fragment_bfq.xml
@@ -2,11 +2,8 @@
-
-
+ app:cardUseCompatPadding="true" />
-
+ android:layout_height="wrap_content"
+ app:navigationIcon="@drawable/end"
+ app:menu="@menu/bfq">
-
-
+
-
-
+
+
-
+ android:layout_height="wrap_content"
+ android:minHeight="?attr/actionBarSize"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
-
+
+
+ app:menu="@menu/sz" />
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_user_editing.xml b/app/src/main/res/layout/activity_user_editing.xml
index 9614be5..706cbff 100644
--- a/app/src/main/res/layout/activity_user_editing.xml
+++ b/app/src/main/res/layout/activity_user_editing.xml
@@ -89,16 +89,19 @@
android:id="@+id/menu"
style="@style/Widget.Material3.TextInputLayout.FilledBox.ExposedDropdownMenu"
android:layout_width="match_parent"
+ android:hint="性别"
android:layout_height="wrap_content">
+ tools:ignore="VisualLintTextFieldSize,SpeakableTextPresentCheck" />
-
-
+ app:cardCornerRadius="16dp" />
-
+ android:layout_height="match_parent"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
index 69fba5c..9ecb86c 100644
--- a/app/src/main/res/layout/fragment_search.xml
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -2,6 +2,7 @@
+ android:layout_height="match_parent"
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_gd.xml b/app/src/main/res/layout/list_gd.xml
index 18fc98e..8fc1a84 100644
--- a/app/src/main/res/layout/list_gd.xml
+++ b/app/src/main/res/layout/list_gd.xml
@@ -2,14 +2,16 @@
+
+ android:id="@+id/relativeLayout"
+ android:layout_width="120dp"
+ android:layout_height="120dp">
+
+
@@ -10,8 +10,8 @@