diff --git a/.idea/misc.xml b/.idea/misc.xml
index d403a80..f2a715a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/app/src/main/java/org/astral/findmaimaiultra/adapter/SuggestMusicRatingAdapter.java b/app/src/main/java/org/astral/findmaimaiultra/adapter/SuggestMusicRatingAdapter.java
index 8be5e99..fdb5e5d 100644
--- a/app/src/main/java/org/astral/findmaimaiultra/adapter/SuggestMusicRatingAdapter.java
+++ b/app/src/main/java/org/astral/findmaimaiultra/adapter/SuggestMusicRatingAdapter.java
@@ -1,10 +1,12 @@
package org.astral.findmaimaiultra.adapter;
+import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
@@ -20,6 +22,7 @@ import java.util.List;
public class SuggestMusicRatingAdapter extends RecyclerView.Adapter {
private List musicRatings;
+ private final SharedPreferences projectE;
private OnItemClickListener listener;
public interface OnItemClickListener {
@@ -31,10 +34,12 @@ public class SuggestMusicRatingAdapter extends RecyclerView.Adapter musicRatings) {
+ public SuggestMusicRatingAdapter(List musicRatings, SharedPreferences projectE) {
this.musicRatings = musicRatings;
+ this.projectE = projectE;
}
+
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -91,6 +96,26 @@ public class SuggestMusicRatingAdapter extends RecyclerView.Adapter {
+ // Remove project from SharedPreferences
+ String projectKey = "project" + musicRating.getMusicId();
+ if (projectE.contains(projectKey)) {
+ SharedPreferences.Editor editor = projectE.edit();
+ editor.remove(projectKey);
+ editor.apply();
+
+ // Remove item from the list and refresh
+ musicRatings.remove(position);
+ notifyItemRemoved(position);
+ notifyItemRangeChanged(position, musicRatings.size());
+
+ Toast.makeText(v.getContext(), "Project removed", Toast.LENGTH_SHORT).show();
+ }
+ return true;
+ });
}
private int getAchievementImageResId(int achievement) {
diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/home/HomeFragment.java b/app/src/main/java/org/astral/findmaimaiultra/ui/home/HomeFragment.java
index 59e6220..172f1c4 100644
--- a/app/src/main/java/org/astral/findmaimaiultra/ui/home/HomeFragment.java
+++ b/app/src/main/java/org/astral/findmaimaiultra/ui/home/HomeFragment.java
@@ -347,26 +347,26 @@ public class HomeFragment extends Fragment {
a.clear();
TreeMap treeMap = new TreeMap<>();
+ try {
+ for (Place p : b) {
+ double distance = DistanceCalculator.calculateDistance(Double.parseDouble(x), Double.parseDouble(y), p.getX(), p.getY());
- for (Place p : b) {
- double distance = DistanceCalculator.calculateDistance(Double.parseDouble(x), Double.parseDouble(y), p.getX(), p.getY());
-
- if (shoucang.contains(p.getId() + "")) {
- p.setName(p.getName() + " 收藏" + " 距离您" + String.format(Locale.CHINA, "%.2f", distance) + "km");
- treeMap.put(distance - 1000, p);
- } else {
- p.setName(p.getName() + " 距离您" + String.format(Locale.CHINA, "%.2f", distance) + "km");
- treeMap.put(distance, p);
+ if (shoucang.contains(p.getId() + "")) {
+ p.setName(p.getName() + " 收藏" + " 距离您" + String.format(Locale.CHINA, "%.2f", distance) + "km");
+ treeMap.put(distance - 1000, p);
+ } else {
+ p.setName(p.getName() + " 距离您" + String.format(Locale.CHINA, "%.2f", distance) + "km");
+ treeMap.put(distance, p);
+ }
+ if (p.getNumJ() > 0) {
+ p.setName(p.getName() + "\uD83D\uDCB3");
+ }
}
- if (p.getNumJ() > 0) {
- p.setName(p.getName() + "\uD83D\uDCB3");
+
+ for (Double key : treeMap.keySet()) {
+ a.add(treeMap.get(key));
}
- }
-
- for (Double key : treeMap.keySet()) {
- a.add(treeMap.get(key));
- }
-
+ }catch (Exception e) {}
boolean flag2 = true;
if (flag2) {
getActivity().runOnUiThread(new Runnable() {
diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/music/MusicFragment.java b/app/src/main/java/org/astral/findmaimaiultra/ui/music/MusicFragment.java
index b1f8650..c60ff89 100644
--- a/app/src/main/java/org/astral/findmaimaiultra/ui/music/MusicFragment.java
+++ b/app/src/main/java/org/astral/findmaimaiultra/ui/music/MusicFragment.java
@@ -561,7 +561,9 @@ public class MusicFragment extends Fragment {
.load("https://assets2.lxns.net/maimai/jacket/" + song.getId() + ".png")
.into(songImage);
TextView songTitle = dialogView.findViewById(R.id.song_title);
+ songTitle.setTextColor(getResources().getColor(R.color.textcolorPrimary));
TextView songArtist = dialogView.findViewById(R.id.song_artist);
+ songArtist.setTextColor(getResources().getColor(R.color.textcolorPrimary));
songTitle.setText(song.getTitle());
songArtist.setText(song.getArtist());
@@ -592,6 +594,7 @@ public class MusicFragment extends Fragment {
cell.setTextColor(getResources().getColor(R.color.primary));
}else {
cell.setText(100.5001 - (((float)j-1) * 0.5) + "%");
+ cell.setTextColor(getResources().getColor(R.color.textcolorPrimary));
}
cell.setPadding(8, 8, 8, 8);
row.addView(cell);
@@ -606,6 +609,7 @@ public class MusicFragment extends Fragment {
double a = 100.5001 - (((float)j-1) * 0.5);
Log.d("TAG", "a: " + a);
cell.setText("" + getRatingChart(diff.get(i-1),a)); // 示例数据
+ cell.setTextColor(getResources().getColor(R.color.textcolorPrimary));
int finalI = i;
int finalJ = j;
@@ -631,6 +635,7 @@ public class MusicFragment extends Fragment {
Snackbar.make(v, "已添加", Snackbar.LENGTH_SHORT)
.setAction("确定", null)
.show();
+ dataanlysis();
});
builder1.setNegativeButton("取消", (dialog, which) -> {
dialog.dismiss();
@@ -666,6 +671,8 @@ public class MusicFragment extends Fragment {
else{
extraInfo.setText("BPM" + song.getBpm());
}
+ extraInfo.setTextColor(getResources().getColor(R.color.textcolorPrimary));
+
builder.setPositiveButton("关闭", (dialog, which) -> dialog.dismiss());
builder.show();
}
@@ -909,7 +916,7 @@ public class MusicFragment extends Fragment {
au.setText("Rating分析:最低分 " + worstRating + "分,最高分 " + bestRating + ",平均分" + (finalTotal / 50) + "分");
- adapterSuggest = new SuggestMusicRatingAdapter(suggestMusicRatingList);
+ adapterSuggest = new SuggestMusicRatingAdapter(suggestMusicRatingList,project);
suggest.setAdapter(adapterSuggest);
adapterSuggest.notifyDataSetChanged();
});
diff --git a/app/src/main/res/layout/dialog_song_detail.xml b/app/src/main/res/layout/dialog_song_detail.xml
index af65f3f..af13636 100644
--- a/app/src/main/res/layout/dialog_song_detail.xml
+++ b/app/src/main/res/layout/dialog_song_detail.xml
@@ -73,12 +73,5 @@
android:text="额外信息"
android:layout_marginTop="16dp" />
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_song.xml b/app/src/main/res/layout/item_song.xml
index aa3711e..234976c 100644
--- a/app/src/main/res/layout/item_song.xml
+++ b/app/src/main/res/layout/item_song.xml
@@ -10,6 +10,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Song Title"
+ android:textColor="@color/textcolorPrimary"
android:textSize="16sp"
android:textStyle="bold"
android:ellipsize="end"
diff --git a/app/src/main/res/layout/item_song_search_result.xml b/app/src/main/res/layout/item_song_search_result.xml
index ca2add6..2a6a3d3 100644
--- a/app/src/main/res/layout/item_song_search_result.xml
+++ b/app/src/main/res/layout/item_song_search_result.xml
@@ -18,6 +18,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
+ android:textColor="@color/textcolorPrimary"
android:textStyle="bold" />