134 lines
5.3 KiB
Java
134 lines
5.3 KiB
Java
|
|
package com.example.livestreaming;
|
||
|
|
|
||
|
|
import android.content.Context;
|
||
|
|
import android.content.Intent;
|
||
|
|
import android.os.Bundle;
|
||
|
|
import android.widget.Toast;
|
||
|
|
|
||
|
|
import androidx.appcompat.app.AppCompatActivity;
|
||
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||
|
|
|
||
|
|
import com.example.livestreaming.databinding.ActivitySettingsPageBinding;
|
||
|
|
|
||
|
|
import java.util.ArrayList;
|
||
|
|
import java.util.List;
|
||
|
|
|
||
|
|
public class SettingsPageActivity extends AppCompatActivity {
|
||
|
|
|
||
|
|
public static final String EXTRA_PAGE = "extra_page";
|
||
|
|
|
||
|
|
public static final String PAGE_ACCOUNT_SECURITY = "account_security";
|
||
|
|
public static final String PAGE_PRIVACY = "privacy";
|
||
|
|
public static final String PAGE_NOTIFICATIONS = "notifications";
|
||
|
|
public static final String PAGE_CLEAR_CACHE = "clear_cache";
|
||
|
|
public static final String PAGE_HELP = "help";
|
||
|
|
public static final String PAGE_ABOUT = "about";
|
||
|
|
|
||
|
|
private ActivitySettingsPageBinding binding;
|
||
|
|
|
||
|
|
public static void start(Context context, String page) {
|
||
|
|
Intent intent = new Intent(context, SettingsPageActivity.class);
|
||
|
|
intent.putExtra(EXTRA_PAGE, page);
|
||
|
|
context.startActivity(intent);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
protected void onCreate(Bundle savedInstanceState) {
|
||
|
|
super.onCreate(savedInstanceState);
|
||
|
|
binding = ActivitySettingsPageBinding.inflate(getLayoutInflater());
|
||
|
|
setContentView(binding.getRoot());
|
||
|
|
|
||
|
|
binding.backButton.setOnClickListener(v -> finish());
|
||
|
|
|
||
|
|
String page = getIntent() != null ? getIntent().getStringExtra(EXTRA_PAGE) : null;
|
||
|
|
if (page == null) page = "";
|
||
|
|
|
||
|
|
String title = resolveTitle(page);
|
||
|
|
binding.titleText.setText(title);
|
||
|
|
|
||
|
|
MoreAdapter adapter = new MoreAdapter(item -> {
|
||
|
|
if (item == null) return;
|
||
|
|
if (item.getType() != MoreItem.Type.ROW) return;
|
||
|
|
String t = item.getTitle() != null ? item.getTitle() : "";
|
||
|
|
Toast.makeText(this, "点击:" + t, Toast.LENGTH_SHORT).show();
|
||
|
|
});
|
||
|
|
|
||
|
|
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||
|
|
binding.recyclerView.setAdapter(adapter);
|
||
|
|
|
||
|
|
adapter.submitList(buildItems(page));
|
||
|
|
}
|
||
|
|
|
||
|
|
private String resolveTitle(String page) {
|
||
|
|
switch (page) {
|
||
|
|
case PAGE_ACCOUNT_SECURITY:
|
||
|
|
return "账号与安全";
|
||
|
|
case PAGE_PRIVACY:
|
||
|
|
return "隐私";
|
||
|
|
case PAGE_NOTIFICATIONS:
|
||
|
|
return "通知";
|
||
|
|
case PAGE_CLEAR_CACHE:
|
||
|
|
return "清理缓存";
|
||
|
|
case PAGE_HELP:
|
||
|
|
return "帮助与反馈";
|
||
|
|
case PAGE_ABOUT:
|
||
|
|
return "关于";
|
||
|
|
default:
|
||
|
|
return "设置";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private List<MoreItem> buildItems(String page) {
|
||
|
|
List<MoreItem> list = new ArrayList<>();
|
||
|
|
|
||
|
|
if (PAGE_ACCOUNT_SECURITY.equals(page)) {
|
||
|
|
list.add(MoreItem.section("登录与账号"));
|
||
|
|
list.add(MoreItem.row("修改密码", "设置登录密码", R.drawable.ic_person_24));
|
||
|
|
list.add(MoreItem.row("绑定手机号", "用于登录与找回", R.drawable.ic_people_24));
|
||
|
|
list.add(MoreItem.row("登录设备管理", "查看并管理已登录设备", R.drawable.ic_grid_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (PAGE_PRIVACY.equals(page)) {
|
||
|
|
list.add(MoreItem.section("权限与安全"));
|
||
|
|
list.add(MoreItem.row("黑名单", "管理你屏蔽的用户", R.drawable.ic_people_24));
|
||
|
|
list.add(MoreItem.row("权限管理", "相机、麦克风、定位等", R.drawable.ic_mic_24));
|
||
|
|
list.add(MoreItem.row("隐私政策", "了解我们如何保护你的数据", R.drawable.ic_globe_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (PAGE_NOTIFICATIONS.equals(page)) {
|
||
|
|
list.add(MoreItem.section("消息提醒"));
|
||
|
|
list.add(MoreItem.row("系统通知", "关注、评论、私信提醒", R.drawable.ic_notifications_24));
|
||
|
|
list.add(MoreItem.row("免打扰", "设置勿扰时段", R.drawable.ic_notifications_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (PAGE_CLEAR_CACHE.equals(page)) {
|
||
|
|
list.add(MoreItem.section("存储"));
|
||
|
|
list.add(MoreItem.row("缓存大小", "点击清理缓存(演示)", R.drawable.ic_grid_24));
|
||
|
|
list.add(MoreItem.row("图片缓存", "清理封面/头像缓存", R.drawable.ic_palette_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (PAGE_HELP.equals(page)) {
|
||
|
|
list.add(MoreItem.section("帮助"));
|
||
|
|
list.add(MoreItem.row("常见问题", "问题解答与使用指南", R.drawable.ic_chat_24));
|
||
|
|
list.add(MoreItem.row("意见反馈", "提交你的建议与问题", R.drawable.ic_chat_24));
|
||
|
|
list.add(MoreItem.row("联系客服", "在线客服(演示)", R.drawable.ic_chat_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (PAGE_ABOUT.equals(page)) {
|
||
|
|
list.add(MoreItem.section("应用信息"));
|
||
|
|
list.add(MoreItem.row("版本", "Live Streaming 1.0", R.drawable.ic_menu_24));
|
||
|
|
list.add(MoreItem.row("用户协议", "服务条款与规则", R.drawable.ic_menu_24));
|
||
|
|
list.add(MoreItem.row("隐私政策", "隐私保护说明", R.drawable.ic_menu_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
|
||
|
|
list.add(MoreItem.row("返回", "", R.drawable.ic_arrow_back_24));
|
||
|
|
return list;
|
||
|
|
}
|
||
|
|
}
|