diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index cb865f697f47f6843c977b82522f285cde326243..9e7641e587096e0c8dd2b1ef1c7b70fc7eb939c5 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,10 @@
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index e00135a75ad57029f62714533149ac05675719ea..0f866762d6bf9bce872f2000f0b7482947c92bf0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,9 +1,5 @@
-
-
-
-
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bd99a690dbb52f7687bd46851a6eb58fc639e9e0..3050b6ac53be6bb5042101dc2ea92d47f69f2b98 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,6 +16,10 @@
android:theme="@style/Theme.Fq"
android:usesCleartextTraffic="true"
tools:targetApi="31" >
+
+
+
diff --git a/app/src/main/java/com/fq/myapplication/activity/SettingsActivity.java b/app/src/main/java/com/fq/myapplication/activity/SettingsActivity.java
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..be8e1882166c907b5aa9b81f4153d9def904dc22 100644
--- a/app/src/main/java/com/fq/myapplication/activity/SettingsActivity.java
+++ b/app/src/main/java/com/fq/myapplication/activity/SettingsActivity.java
@@ -0,0 +1,61 @@
+package com.fq.myapplication.activity;
+
+import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import com.fq.myapplication.R;
+import com.fq.myapplication.adapter.SettingsAdapter;
+import com.fq.myapplication.bean.SettingItem;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SettingsActivity extends AppCompatActivity {
+
+ private RecyclerView recyclerView;
+ private SettingsAdapter adapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_settings);
+
+ recyclerView = findViewById(R.id.settings_list);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+ List items = new ArrayList<>();
+
+ items.add(new SettingItem(SettingItem.TYPE_GROUP_TITLE, "账号", null, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "账号与安全", R.drawable.ic_account, null, false));
+
+ items.add(new SettingItem(SettingItem.TYPE_GROUP_TITLE, "隐私", null, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "隐私设置", R.drawable.ic_privacy, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "推送设置", R.drawable.ic_push, null, false));
+
+ items.add(new SettingItem(SettingItem.TYPE_GROUP_TITLE, "功能设置", null, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "内容自动刷新", R.drawable.ic_refresh, null, true));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "展示右下角刷新按钮", R.drawable.ic_corner, null, true));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "保存视频带神弹幕", R.drawable.ic_danmaku, null, true));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "自动唤起声音电台", R.drawable.ic_radio, null, true));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "LIVE实况图展示振动效果", R.drawable.ic_vibration, null, true));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "开屏画面设置", R.drawable.ic_splash, null, false));
+
+ items.add(new SettingItem(SettingItem.TYPE_GROUP_TITLE, "内容设置", null, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "推荐中屏蔽的内容", R.drawable.ic_block, "去修改", false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "夜间模式", R.drawable.ic_night, "日间", false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "青少年模式", R.drawable.ic_teen, "去开启", false));
+
+ items.add(new SettingItem(SettingItem.TYPE_GROUP_TITLE, "关于", null, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "清除缓存", R.drawable.ic_cache, "7.51MB", false));
+ items.add(new SettingItem(SettingItem.TYPE_SWITCH, "内测版本优先体验", R.drawable.ic_beta, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "检查更新", R.drawable.ic_update, "6.3.20 NEW!", false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "个人信息管理", R.drawable.ic_info, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_NORMAL, "关于最右", R.drawable.ic_about, null, false));
+
+ items.add(new SettingItem(SettingItem.TYPE_BUTTON, "切换账号", R.drawable.ic_cut, null, false));
+ items.add(new SettingItem(SettingItem.TYPE_BUTTON, "退出登录", R.drawable.ic_back, null, false));
+
+ adapter = new SettingsAdapter(items);
+ recyclerView.setAdapter(adapter);
+ }
+}
diff --git a/app/src/main/java/com/fq/myapplication/adapter/SettingsAdapter.java b/app/src/main/java/com/fq/myapplication/adapter/SettingsAdapter.java
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3b43cd864110c13fbb9c9ebb543b610abbda57fd 100644
--- a/app/src/main/java/com/fq/myapplication/adapter/SettingsAdapter.java
+++ b/app/src/main/java/com/fq/myapplication/adapter/SettingsAdapter.java
@@ -0,0 +1,118 @@
+package com.fq.myapplication.adapter;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.Switch;
+import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+import com.fq.myapplication.R;
+import com.fq.myapplication.bean.SettingItem;
+import java.util.List;
+
+public class SettingsAdapter extends RecyclerView.Adapter {
+
+ private final List items;
+
+ public SettingsAdapter(List items) {
+ this.items = items;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return items.get(position).getType();
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+ switch (viewType) {
+ case SettingItem.TYPE_GROUP_TITLE:
+ return new GroupTitleHolder(inflater.inflate(R.layout.activity_settings_group, parent, false));
+ case SettingItem.TYPE_SWITCH:
+ return new SwitchHolder(inflater.inflate(R.layout.activity_settings_switch, parent, false));
+ case SettingItem.TYPE_BUTTON:
+ return new ButtonHolder(inflater.inflate(R.layout.activity_settings_button, parent, false));
+ default:
+ return new NormalHolder(inflater.inflate(R.layout.activity_settings_normal, parent, false));
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+ SettingItem item = items.get(position);
+
+ if (holder instanceof GroupTitleHolder) {
+ ((GroupTitleHolder) holder).title.setText(item.getTitle());
+ } else if (holder instanceof SwitchHolder) {
+ ((SwitchHolder) holder).title.setText(item.getTitle());
+ ((SwitchHolder) holder).icon.setImageResource(item.getIconRes());
+ ((SwitchHolder) holder).toggle.setChecked(item.isChecked());
+ } else if (holder instanceof ButtonHolder) {
+ ((ButtonHolder) holder).title.setText(item.getTitle());
+ ((ButtonHolder) holder).icon.setImageResource(item.getIconRes());
+ } else if (holder instanceof NormalHolder) {
+ ((NormalHolder) holder).title.setText(item.getTitle());
+ ((NormalHolder) holder).icon.setImageResource(item.getIconRes());
+ if (item.getDesc() != null) {
+ ((NormalHolder) holder).desc.setText(item.getDesc());
+ ((NormalHolder) holder).desc.setVisibility(View.VISIBLE);
+ } else {
+ ((NormalHolder) holder).desc.setVisibility(View.GONE);
+ }
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return items.size();
+ }
+
+ static class GroupTitleHolder extends RecyclerView.ViewHolder {
+ TextView title;
+
+ public GroupTitleHolder(@NonNull View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.group_title);
+ }
+ }
+
+ static class SwitchHolder extends RecyclerView.ViewHolder {
+ TextView title;
+ ImageView icon;
+ Switch toggle;
+
+ public SwitchHolder(@NonNull View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ icon = itemView.findViewById(R.id.icon);
+ toggle = itemView.findViewById(R.id.toggle);
+ }
+ }
+
+ static class NormalHolder extends RecyclerView.ViewHolder {
+ TextView title, desc;
+ ImageView icon;
+
+ public NormalHolder(@NonNull View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ icon = itemView.findViewById(R.id.icon);
+ desc = itemView.findViewById(R.id.desc);
+ }
+ }
+
+ static class ButtonHolder extends RecyclerView.ViewHolder {
+ TextView title;
+ ImageView icon;
+
+ public ButtonHolder(@NonNull View itemView) {
+ super(itemView);
+ title = itemView.findViewById(R.id.title);
+ icon = itemView.findViewById(R.id.icon);
+ }
+ }
+}
diff --git a/app/src/main/java/com/fq/myapplication/fragment/ProfileFragment.java b/app/src/main/java/com/fq/myapplication/fragment/ProfileFragment.java
index 9b1b4dc9ed2debf99ef13d33c22de6612e72c16a..ace6b4f1666b8d1899fa734bdea1033b182bbfaf 100644
--- a/app/src/main/java/com/fq/myapplication/fragment/ProfileFragment.java
+++ b/app/src/main/java/com/fq/myapplication/fragment/ProfileFragment.java
@@ -15,8 +15,10 @@ import android.widget.TextView;
//import com.bumptech.glide.Glide;
+import com.fq.myapplication.MainActivity;
import com.fq.myapplication.R;
import com.fq.myapplication.activity.LoginActivity;
+import com.fq.myapplication.activity.SettingsActivity;
public class ProfileFragment extends Fragment {
@@ -48,7 +50,14 @@ public class ProfileFragment extends Fragment {
TextView btnLogin = view.findViewById(R.id.btn_login);
btnLogin.setOnClickListener(v -> navigateToLogin());
+ ImageView settingIcon = view.findViewById(R.id.ic_setting);
+ settingIcon.setOnClickListener(v -> {
+ Intent intent = new Intent(getActivity(), SettingsActivity.class);
+ startActivity(intent);
+ });
+
return view;
+
}
// 跳转
public void navigateToLogin() {
diff --git a/app/src/main/res/layout/activity_settings_group.xml b/app/src/main/res/layout/activity_settings_group.xml
index 61c6b360b2edeca8027170f612dd64ac125f0e49..949f606142a542b53658838621815c369c8d958f 100644
--- a/app/src/main/res/layout/activity_settings_group.xml
+++ b/app/src/main/res/layout/activity_settings_group.xml
@@ -1,6 +1,6 @@
-
+ android:trackTint="#0792fe"
+ android:text="" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index 6206529ff3962f3206bcbc776aec3eff1b8413f7..fc203fc535d1a61238d54b56086022e62ce0986b 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -29,6 +29,7 @@
android:scaleType="fitCenter"/>