More MD3 designs (#1548)

Co-authored-by: RikkaW <rikka@shizuku.moe>
This commit is contained in:
LoveSy 2022-01-22 22:40:30 +08:00 committed by GitHub
parent fcf667b980
commit d11c0f78a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
76 changed files with 2396 additions and 1080 deletions

View File

@ -167,17 +167,16 @@ dependencies {
annotationProcessor("com.github.bumptech.glide:compiler:$glideVersion") annotationProcessor("com.github.bumptech.glide:compiler:$glideVersion")
implementation("androidx.activity:activity:1.4.0") implementation("androidx.activity:activity:1.4.0")
implementation("androidx.browser:browser:1.4.0") implementation("androidx.browser:browser:1.4.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.2") implementation("androidx.constraintlayout:constraintlayout:2.1.3")
implementation("androidx.core:core:1.7.0") implementation("androidx.core:core:1.7.0")
implementation("androidx.fragment:fragment:1.4.0") implementation("androidx.fragment:fragment:1.4.0")
implementation("androidx.navigation:navigation-fragment:$navVersion") implementation("androidx.navigation:navigation-fragment:$navVersion")
implementation("androidx.navigation:navigation-ui:$navVersion") implementation("androidx.navigation:navigation-ui:$navVersion")
implementation("androidx.preference:preference:1.1.1") implementation("androidx.preference:preference:1.1.1")
implementation("androidx.recyclerview:recyclerview:1.2.1") implementation("androidx.recyclerview:recyclerview:1.2.1")
implementation("androidx.slidingpanelayout:slidingpanelayout:1.2.0-rc01")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01")
implementation("com.github.bumptech.glide:glide:$glideVersion") implementation("com.github.bumptech.glide:glide:$glideVersion")
implementation("com.google.android.material:material:1.6.0-alpha01") implementation("com.google.android.material:material:1.6.0-alpha02")
implementation("com.google.code.gson:gson:2.8.9") implementation("com.google.code.gson:gson:2.8.9")
implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.3")) implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.3"))
implementation("com.squareup.okhttp3:okhttp") implementation("com.squareup.okhttp3:okhttp")

View File

@ -26,24 +26,37 @@ import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.os.BuildCompat; import androidx.core.os.BuildCompat;
import androidx.navigation.NavController; import androidx.navigation.NavController;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import androidx.navigation.ui.NavigationUI;
import com.google.android.material.navigation.NavigationBarView;
import org.lsposed.manager.App; import org.lsposed.manager.App;
import org.lsposed.manager.ConfigManager; import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.NavGraphDirections; import org.lsposed.manager.NavGraphDirections;
import org.lsposed.manager.R; import org.lsposed.manager.R;
import org.lsposed.manager.databinding.ActivityMainBinding; import org.lsposed.manager.databinding.ActivityMainBinding;
import org.lsposed.manager.repo.RepoLoader;
import org.lsposed.manager.ui.activity.base.BaseActivity; import org.lsposed.manager.ui.activity.base.BaseActivity;
import org.lsposed.manager.util.ModuleUtil;
import org.lsposed.manager.util.UpdateUtil;
public class MainActivity extends BaseActivity { import java.util.HashSet;
import rikka.core.util.ResourceUtils;
public class MainActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener {
private static final String KEY_PREFIX = MainActivity.class.getName() + '.'; private static final String KEY_PREFIX = MainActivity.class.getName() + '.';
private static final String EXTRA_SAVED_INSTANCE_STATE = KEY_PREFIX + "SAVED_INSTANCE_STATE"; private static final String EXTRA_SAVED_INSTANCE_STATE = KEY_PREFIX + "SAVED_INSTANCE_STATE";
private static final RepoLoader repoLoader = RepoLoader.getInstance();
private static final ModuleUtil moduleUtil = ModuleUtil.getInstance();
private boolean restarting; private boolean restarting;
private ActivityMainBinding binding; private ActivityMainBinding binding;
@ -65,9 +78,25 @@ public class MainActivity extends BaseActivity {
} }
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater()); binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot()); setContentView(binding.getRoot());
repoLoader.addListener(this);
moduleUtil.addListener(this);
onModulesReloaded();
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
if (navHostFragment == null) {
return;
}
NavController navController = navHostFragment.getNavController();
var nav = (NavigationBarView) binding.nav;
NavigationUI.setupWithNavController(nav, navController);
nav.findViewById(R.id.modules_fragment);
handleIntent(getIntent()); handleIntent(getIntent());
} }
@ -86,29 +115,20 @@ public class MainActivity extends BaseActivity {
return; return;
} }
NavController navController = navHostFragment.getNavController(); NavController navController = navHostFragment.getNavController();
if (binding.homeFragment != null) {
navController.addOnDestinationChangedListener((controller, destination, arguments) -> {
if (destination.getId() == R.id.main_fragment) {
binding.navHostFragment.setVisibility(View.GONE);
} else {
binding.navHostFragment.setVisibility(View.VISIBLE);
}
});
}
if (intent.getAction() != null && intent.getAction().equals("android.intent.action.APPLICATION_PREFERENCES")) { if (intent.getAction() != null && intent.getAction().equals("android.intent.action.APPLICATION_PREFERENCES")) {
navController.navigate(R.id.action_settings_fragment); navController.navigate(R.id.settings_fragment);
} else if (ConfigManager.isBinderAlive()) { } else if (ConfigManager.isBinderAlive()) {
if (!TextUtils.isEmpty(intent.getDataString())) { if (!TextUtils.isEmpty(intent.getDataString())) {
switch (intent.getDataString()) { switch (intent.getDataString()) {
case "modules": case "modules":
navController.navigate(R.id.action_modules_fragment); navController.navigate(R.id.modules_fragment);
break; break;
case "logs": case "logs":
navController.navigate(R.id.action_logs_fragment); navController.navigate(R.id.logs_fragment);
break; break;
case "repo": case "repo":
if (ConfigManager.isMagiskInstalled()) { if (ConfigManager.isMagiskInstalled()) {
navController.navigate(R.id.action_repo_fragment); navController.navigate(R.id.repo_fragment);
} }
break; break;
default: default:
@ -174,4 +194,97 @@ public class MainActivity extends BaseActivity {
public boolean dispatchGenericMotionEvent(@NonNull MotionEvent event) { public boolean dispatchGenericMotionEvent(@NonNull MotionEvent event) {
return restarting || super.dispatchGenericMotionEvent(event); return restarting || super.dispatchGenericMotionEvent(event);
} }
@Override
public void onRepoLoaded() {
final int[] count = new int[]{0};
HashSet<String> processedModules = new HashSet<>();
var modules = moduleUtil.getModules();
if (modules == null) return;
modules.forEach((k, v) -> {
if (!processedModules.contains(k.first)) {
var ver = repoLoader.getModuleLatestVersion(k.first);
if (ver != null && ver.upgradable(v.versionCode, v.versionName)) {
++count[0];
}
processedModules.add(k.first);
}
}
);
runOnUiThread(() -> {
if (count[0] > 0 && binding != null) {
var nav = (NavigationBarView) binding.nav;
var badge = nav.getOrCreateBadge(R.id.repo_fragment);
badge.setVisible(true);
badge.setNumber(count[0]);
} else {
onThrowable(null);
}
});
}
@Override
public void onThrowable(Throwable t) {
runOnUiThread(() -> {
if (binding != null) {
var nav = (NavigationBarView) binding.nav;
var badge = nav.getOrCreateBadge(R.id.repo_fragment);
badge.setVisible(false);
}
});
}
@Override
public void onModulesReloaded() {
onRepoLoaded();
setModulesSummary(moduleUtil.getEnabledModulesCount());
}
@Override
public void onResume() {
super.onResume();
if (ConfigManager.isBinderAlive()) {
setModulesSummary(moduleUtil.getEnabledModulesCount());
} else setModulesSummary(0);
if (binding != null) {
var nav = (NavigationBarView) binding.nav;
if (UpdateUtil.needUpdate()) {
var badge = nav.getOrCreateBadge(R.id.main_fragment);
badge.setVisible(true);
}
if (!ConfigManager.isBinderAlive()) {
nav.getMenu().removeItem(R.id.logs_fragment);
nav.getMenu().removeItem(R.id.modules_fragment);
if (!ConfigManager.isMagiskInstalled()) {
nav.getMenu().removeItem(R.id.repo_fragment);
}
}
}
}
private void setModulesSummary(int moduleCount) {
runOnUiThread(() -> {
if (binding != null) {
var nav = (NavigationBarView) binding.nav;
var badge = nav.getOrCreateBadge(R.id.modules_fragment);
badge.setBackgroundColor(ResourceUtils.resolveColor(getTheme(), com.google.android.material.R.attr.colorPrimary));
badge.setBadgeTextColor(ResourceUtils.resolveColor(getTheme(), com.google.android.material.R.attr.colorOnPrimary));
if (moduleCount > 0) {
badge.setVisible(true);
badge.setNumber(moduleCount);
} else {
badge.setVisible(false);
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
repoLoader.removeListener(this);
moduleUtil.removeListener(this);
}
} }

View File

@ -43,7 +43,6 @@ import org.lsposed.manager.util.NavUtil;
import org.lsposed.manager.util.ThemeUtil; import org.lsposed.manager.util.ThemeUtil;
import org.lsposed.manager.util.UpdateUtil; import org.lsposed.manager.util.UpdateUtil;
import rikka.core.util.ResourceUtils;
import rikka.material.app.MaterialActivity; import rikka.material.app.MaterialActivity;
public class BaseActivity extends MaterialActivity { public class BaseActivity extends MaterialActivity {
@ -113,15 +112,6 @@ public class BaseActivity extends MaterialActivity {
super.onApplyTranslucentSystemBars(); super.onApplyTranslucentSystemBars();
Window window = getWindow(); Window window = getWindow();
window.setStatusBarColor(Color.TRANSPARENT); window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
window.getDecorView().post(() -> {
var rootWindowInsets = window.getDecorView().getRootWindowInsets();
if (rootWindowInsets != null &&
rootWindowInsets.getSystemWindowInsetBottom() >= Resources.getSystem().getDisplayMetrics().density * 40) {
window.setNavigationBarColor(ResourceUtils.resolveColor(getTheme(), android.R.attr.navigationBarColor) & 0x00ffffff | -0x20000000);
} else {
window.setNavigationBarColor(Color.TRANSPARENT);
}
});
} }
} }

View File

@ -22,7 +22,7 @@ import org.lsposed.manager.App;
import org.lsposed.manager.ConfigManager; import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R; import org.lsposed.manager.R;
import org.lsposed.manager.databinding.DialogTitleBinding; import org.lsposed.manager.databinding.DialogTitleBinding;
import org.lsposed.manager.databinding.DialogWarningBinding; import org.lsposed.manager.databinding.ScrollableDialogBinding;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
@ -52,8 +52,8 @@ public class FlashDialogBuilder extends BlurBehindDialogBuilder {
textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setTextIsSelectable(true); textView.setTextIsSelectable(true);
DialogWarningBinding binding = DialogWarningBinding.inflate(inflater, null, false); var binding = ScrollableDialogBinding.inflate(inflater, null, false);
binding.container.addView(textView); binding.dialogContainer.addView(textView);
rootView = binding.getRoot(); rootView = binding.getRoot();
setView(rootView); setView(rootView);
title.setOnClickListener(v -> rootView.smoothScrollTo(0, 0)); title.setOnClickListener(v -> rootView.smoothScrollTo(0, 0));

View File

@ -1,111 +0,0 @@
/*
* This file is part of LSPosed.
*
* LSPosed is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* LSPosed is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
*
* Copyright (C) 2021 LSPosed Contributors
*/
package org.lsposed.manager.ui.dialog;
import android.app.Dialog;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import org.lsposed.manager.BuildConfig;
import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R;
import org.lsposed.manager.databinding.DialogInfoBinding;
import java.util.Locale;
import rikka.core.util.ClipboardUtils;
public class InfoDialogBuilder extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
var activity = requireActivity();
var builder = new BlurBehindDialogBuilder(activity).setTitle(R.string.info);
DialogInfoBinding binding = DialogInfoBinding.inflate(LayoutInflater.from(activity), null, false);
if (ConfigManager.isBinderAlive()) {
binding.apiVersion.setText(String.valueOf(ConfigManager.getXposedApiVersion()));
binding.api.setText(ConfigManager.getApi());
binding.frameworkVersion.setText(String.format(Locale.ROOT, "%s (%s)", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
} else {
binding.apiVersion.setText(R.string.not_installed);
binding.api.setText(R.string.not_installed);
binding.frameworkVersion.setText(R.string.not_installed);
}
binding.managerVersion.setText(String.format(Locale.ROOT, "%s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
if (Build.VERSION.PREVIEW_SDK_INT != 0) {
binding.systemVersion.setText(String.format(Locale.ROOT, "%1$s Preview (API %2$d)", Build.VERSION.CODENAME, Build.VERSION.SDK_INT));
} else {
binding.systemVersion.setText(String.format(Locale.ROOT, "%1$s (API %2$d)", Build.VERSION.RELEASE, Build.VERSION.SDK_INT));
}
binding.device.setText(getDevice());
binding.systemAbi.setText(Build.SUPPORTED_ABIS[0]);
builder.setView(binding.getRoot());
builder.setPositiveButton(android.R.string.ok, null);
String info = activity.getString(R.string.info_api_version) +
"\n" +
binding.apiVersion.getText() +
"\n\n" +
activity.getString(R.string.info_api) +
"\n" +
binding.api.getText() +
"\n\n" +
activity.getString(R.string.info_framework_version) +
"\n" +
binding.frameworkVersion.getText() +
"\n\n" +
activity.getString(R.string.info_manager_version) +
"\n" +
binding.managerVersion.getText() +
"\n\n" +
activity.getString(R.string.info_system_version) +
"\n" +
binding.systemVersion.getText() +
"\n\n" +
activity.getString(R.string.info_device) +
"\n" +
binding.device.getText() +
"\n\n" +
activity.getString(R.string.info_system_abi) +
"\n" +
binding.systemAbi.getText();
builder.setNeutralButton(android.R.string.copy, (dialog, which) -> ClipboardUtils.put(activity, info));
return builder.create();
}
private String getDevice() {
String manufacturer = Character.toUpperCase(Build.MANUFACTURER.charAt(0)) + Build.MANUFACTURER.substring(1);
if (!Build.BRAND.equals(Build.MANUFACTURER)) {
manufacturer += " " + Character.toUpperCase(Build.BRAND.charAt(0)) + Build.BRAND.substring(1);
}
manufacturer += " " + Build.MODEL + " ";
return manufacturer;
}
}

View File

@ -1,76 +0,0 @@
/*
* This file is part of LSPosed.
*
* LSPosed is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* LSPosed is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
*
* Copyright (C) 2021 LSPosed Contributors
*/
package org.lsposed.manager.ui.dialog;
import android.app.Dialog;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.text.HtmlCompat;
import androidx.fragment.app.DialogFragment;
import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R;
import org.lsposed.manager.databinding.DialogItemBinding;
import org.lsposed.manager.databinding.DialogWarningBinding;
import org.lsposed.manager.util.chrome.LinkTransformationMethod;
public class WarningDialogBuilder extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
var activity = requireActivity();
var builder = new BlurBehindDialogBuilder(activity).
setTitle(R.string.partial_activated);
LayoutInflater inflater = LayoutInflater.from(activity);
DialogWarningBinding binding = DialogWarningBinding.inflate(inflater, null, false);
if (!ConfigManager.isSepolicyLoaded()) {
DialogItemBinding item = DialogItemBinding.inflate(inflater, binding.container, true);
item.title.setText(R.string.selinux_policy_not_loaded_summary);
item.value.setText(HtmlCompat.fromHtml(activity.getString(R.string.selinux_policy_not_loaded), HtmlCompat.FROM_HTML_MODE_LEGACY));
item.value.setMovementMethod(LinkMovementMethod.getInstance());
item.value.setTransformationMethod(new LinkTransformationMethod(activity));
}
if (!ConfigManager.systemServerRequested()) {
DialogItemBinding item = DialogItemBinding.inflate(inflater, binding.container, true);
item.title.setText(R.string.system_inject_fail_summary);
item.value.setText(HtmlCompat.fromHtml(activity.getString(R.string.system_inject_fail), HtmlCompat.FROM_HTML_MODE_LEGACY));
item.value.setMovementMethod(LinkMovementMethod.getInstance());
item.value.setTransformationMethod(new LinkTransformationMethod(activity));
}
if (!ConfigManager.dex2oatFlagsLoaded()) {
DialogItemBinding item = DialogItemBinding.inflate(inflater, binding.container, true);
item.title.setText(R.string.system_prop_incorrect_summary);
item.value.setText(HtmlCompat.fromHtml(activity.getString(R.string.system_prop_incorrect), HtmlCompat.FROM_HTML_MODE_LEGACY));
item.value.setMovementMethod(LinkMovementMethod.getInstance());
item.value.setTransformationMethod(new LinkTransformationMethod(activity));
}
builder.setView(binding.getRoot());
builder.setPositiveButton(android.R.string.ok, null);
builder.setNeutralButton(R.string.info, (dialog, which) -> new InfoDialogBuilder().show(getParentFragmentManager(), "info"));
return builder.create();
}
}

View File

@ -30,6 +30,8 @@ import androidx.fragment.app.Fragment;
import androidx.navigation.NavController; import androidx.navigation.NavController;
import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.fragment.NavHostFragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import org.lsposed.manager.App; import org.lsposed.manager.App;
@ -110,6 +112,8 @@ public class BaseFragment extends Fragment {
var container = requireActivity().findViewById(R.id.container); var container = requireActivity().findViewById(R.id.container);
if (container != null) { if (container != null) {
var snackbar = Snackbar.make(container, str, lengthShort ? Snackbar.LENGTH_SHORT : Snackbar.LENGTH_LONG); var snackbar = Snackbar.make(container, str, lengthShort ? Snackbar.LENGTH_SHORT : Snackbar.LENGTH_LONG);
if (container.findViewById(R.id.nav) instanceof BottomNavigationView) snackbar.setAnchorView(R.id.nav);
if (container.findViewById(R.id.fab) instanceof FloatingActionButton) snackbar.setAnchorView(R.id.fab);
if (actionStr != null && action != null) snackbar.setAction(actionStr, action); if (actionStr != null && action != null) snackbar.setAction(actionStr, action);
snackbar.show(); snackbar.show();
return; return;

View File

@ -25,6 +25,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -33,142 +34,180 @@ import androidx.annotation.Nullable;
import androidx.core.text.HtmlCompat; import androidx.core.text.HtmlCompat;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import com.google.android.material.color.MaterialColors;
import org.lsposed.manager.BuildConfig; import org.lsposed.manager.BuildConfig;
import org.lsposed.manager.ConfigManager; import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R; import org.lsposed.manager.R;
import org.lsposed.manager.databinding.DialogAboutBinding; import org.lsposed.manager.databinding.DialogAboutBinding;
import org.lsposed.manager.databinding.FragmentHomeBinding; import org.lsposed.manager.databinding.FragmentHomeBinding;
import org.lsposed.manager.repo.RepoLoader;
import org.lsposed.manager.ui.dialog.BlurBehindDialogBuilder; import org.lsposed.manager.ui.dialog.BlurBehindDialogBuilder;
import org.lsposed.manager.ui.dialog.FlashDialogBuilder; import org.lsposed.manager.ui.dialog.FlashDialogBuilder;
import org.lsposed.manager.ui.dialog.InfoDialogBuilder;
import org.lsposed.manager.ui.dialog.ShortcutDialog; import org.lsposed.manager.ui.dialog.ShortcutDialog;
import org.lsposed.manager.ui.dialog.WarningDialogBuilder;
import org.lsposed.manager.util.ModuleUtil;
import org.lsposed.manager.util.NavUtil; import org.lsposed.manager.util.NavUtil;
import org.lsposed.manager.util.UpdateUtil; import org.lsposed.manager.util.UpdateUtil;
import org.lsposed.manager.util.chrome.LinkTransformationMethod; import org.lsposed.manager.util.chrome.LinkTransformationMethod;
import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
import rikka.core.util.ResourceUtils; import rikka.core.util.ClipboardUtils;
public class HomeFragment extends BaseFragment implements RepoLoader.RepoListener, ModuleUtil.ModuleListener { public class HomeFragment extends BaseFragment {
private FragmentHomeBinding binding; private FragmentHomeBinding binding;
private static final RepoLoader repoLoader = RepoLoader.getInstance();
private static final ModuleUtil moduleUtil = ModuleUtil.getInstance();
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
ShortcutDialog.showIfNeed(getChildFragmentManager()); ShortcutDialog.showIfNeed(getChildFragmentManager());
} }
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu_about).setOnMenuItemClickListener(v -> {
showAbout();
return true;
});
menu.findItem(R.id.menu_issue).setOnMenuItemClickListener(v -> {
NavUtil.startURL(requireActivity(), "https://github.com/LSPosed/LSPosed/issues/new/choose");
return true;
});
}
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false); binding = FragmentHomeBinding.inflate(inflater, container, false);
setupToolbar(binding.toolbar, binding.clickView, R.string.app_name, R.menu.menu_home);
setupToolbar(binding.toolbar, null, R.string.app_name);
binding.toolbar.setNavigationIcon(null); binding.toolbar.setNavigationIcon(null);
binding.toolbar.setOnClickListener(v -> showAbout()); binding.toolbar.setOnClickListener(v -> showAbout());
binding.clickView.setOnClickListener(v -> showAbout());
binding.appBar.setLiftable(true); binding.appBar.setLiftable(true);
binding.nestedScrollView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top)); binding.nestedScrollView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top));
Activity activity = requireActivity();
binding.status.setOnClickListener(v -> {
if (ConfigManager.isBinderAlive() && !UpdateUtil.needUpdate()) {
if (!ConfigManager.isSepolicyLoaded() || !ConfigManager.systemServerRequested() || !ConfigManager.dex2oatFlagsLoaded()) {
new WarningDialogBuilder().show(getChildFragmentManager(), "warning");
} else {
new InfoDialogBuilder().show(getChildFragmentManager(), "info");
}
} else {
if (UpdateUtil.canInstall()) {
new FlashDialogBuilder(activity, null).show();
return;
}
NavUtil.startURL(activity, getString(R.string.about_source));
}
});
binding.status.setOnLongClickListener(v -> {
if (UpdateUtil.canInstall()) {
new FlashDialogBuilder(activity, null).show();
return true;
}
return false;
});
binding.modules.setOnClickListener(new StartFragmentListener(R.id.action_modules_fragment, true));
binding.download.setOnClickListener(new StartFragmentListener(R.id.action_repo_fragment, false));
binding.logs.setOnClickListener(new StartFragmentListener(R.id.action_logs_fragment, true));
binding.settings.setOnClickListener(new StartFragmentListener(R.id.action_settings_fragment, false));
binding.issue.setOnClickListener(view -> NavUtil.startURL(activity, "https://github.com/LSPosed/LSPosed/issues/new/choose"));
updateStates(requireActivity(), ConfigManager.isBinderAlive(), UpdateUtil.needUpdate()); updateStates(requireActivity(), ConfigManager.isBinderAlive(), UpdateUtil.needUpdate());
repoLoader.addListener(this);
moduleUtil.addListener(this);
onModulesReloaded();
return binding.getRoot(); return binding.getRoot();
} }
private void updateStates(Activity activity, boolean binderAlive, boolean needUpdate) { private void updateStates(Activity activity, boolean binderAlive, boolean needUpdate) {
int cardBackgroundColor;
if (binderAlive) { if (binderAlive) {
StringBuilder sb = new StringBuilder(String.format(Locale.ROOT, "%s (%d) - %s",
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
if (needUpdate) { if (needUpdate) {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorInstall); binding.updateTitle.setText(R.string.need_update);
binding.statusTitle.setText(R.string.need_update); binding.updateSummary.setText(getString(R.string.please_update_summary));
binding.statusIcon.setImageResource(R.drawable.ic_round_update_24); binding.statusIcon.setImageResource(R.drawable.ic_round_update_24);
sb.append("\n\n"); binding.updateBtn.setOnClickListener(v -> {
sb.append(getString(R.string.please_update_summary)); if (UpdateUtil.canInstall()) {
} else if (!ConfigManager.isSepolicyLoaded() || !ConfigManager.systemServerRequested() || !ConfigManager.dex2oatFlagsLoaded()) { new FlashDialogBuilder(activity, null).show();
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), rikka.material.R.attr.colorWarning); } else {
NavUtil.startURL(activity, getString(R.string.about_source));
}
});
binding.updateCard.setVisibility(View.VISIBLE);
} else {
binding.updateCard.setVisibility(View.GONE);
}
if (!ConfigManager.isSepolicyLoaded() || !ConfigManager.systemServerRequested() || !ConfigManager.dex2oatFlagsLoaded()) {
binding.statusTitle.setText(R.string.partial_activated); binding.statusTitle.setText(R.string.partial_activated);
binding.statusIcon.setImageResource(R.drawable.ic_round_warning_24); binding.statusIcon.setImageResource(R.drawable.ic_round_warning_24);
sb.append("\n"); binding.warningCard.setVisibility(View.VISIBLE);
if (!ConfigManager.isSepolicyLoaded()) { if (!ConfigManager.isSepolicyLoaded()) {
sb.append("\n"); binding.warningTitle.setText(R.string.selinux_policy_not_loaded_summary);
sb.append(getString(R.string.selinux_policy_not_loaded_summary)); binding.warningSummary.setText(HtmlCompat.fromHtml(getString(R.string.selinux_policy_not_loaded), HtmlCompat.FROM_HTML_MODE_LEGACY));
} }
if (!ConfigManager.systemServerRequested()) { if (!ConfigManager.systemServerRequested()) {
sb.append("\n"); binding.warningTitle.setText(R.string.system_inject_fail_summary);
sb.append(getString(R.string.system_inject_fail_summary)); binding.warningSummary.setText(HtmlCompat.fromHtml(getString(R.string.system_inject_fail), HtmlCompat.FROM_HTML_MODE_LEGACY));
} }
if (!ConfigManager.dex2oatFlagsLoaded()) { if (!ConfigManager.dex2oatFlagsLoaded()) {
sb.append("\n"); binding.warningTitle.setText(R.string.system_prop_incorrect_summary);
sb.append(getString(R.string.system_prop_incorrect_summary)); binding.warningSummary.setText(HtmlCompat.fromHtml(getString(R.string.system_prop_incorrect), HtmlCompat.FROM_HTML_MODE_LEGACY));
} }
} else { } else {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorNormal); binding.warningCard.setVisibility(View.GONE);
binding.statusTitle.setText(R.string.activated); binding.statusTitle.setText(R.string.activated);
binding.statusIcon.setImageResource(R.drawable.ic_round_check_circle_24); binding.statusIcon.setImageResource(R.drawable.ic_round_check_circle_24);
} }
binding.statusSummary.setText(sb.toString()); binding.statusSummary.setText(String.format(Locale.ROOT, "%s (%d) - %s",
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
} else { } else {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorInstall);
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled(); boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
binding.statusTitle.setText(isMagiskInstalled ? R.string.install : R.string.not_installed); if (isMagiskInstalled) {
binding.statusSummary.setText(isMagiskInstalled ? R.string.install_summary : R.string.not_install_summary); binding.updateTitle.setText(R.string.install);
if (!isMagiskInstalled) { binding.updateSummary.setText(R.string.install_summary);
binding.status.setOnClickListener(null); binding.statusIcon.setImageResource(R.drawable.ic_round_error_outline_24);
binding.download.setVisibility(View.GONE); binding.updateBtn.setOnClickListener(v -> {
if (UpdateUtil.canInstall()) {
new FlashDialogBuilder(activity, null).show();
} else {
NavUtil.startURL(activity, getString(R.string.install_url));
}
});
binding.updateCard.setVisibility(View.VISIBLE);
} else {
binding.updateCard.setVisibility(View.GONE);
} }
binding.statusIcon.setImageResource(R.drawable.ic_round_error_outline_24); binding.warningCard.setVisibility(View.GONE);
showHint(R.string.lsposed_not_active, false); binding.statusTitle.setText(R.string.not_installed);
binding.statusSummary.setText(R.string.not_install_summary);
} }
cardBackgroundColor = MaterialColors.harmonizeWithPrimary(activity, cardBackgroundColor);
binding.status.setCardBackgroundColor(cardBackgroundColor); if (ConfigManager.isBinderAlive()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { binding.apiVersion.setText(String.valueOf(ConfigManager.getXposedApiVersion()));
binding.status.setOutlineSpotShadowColor(cardBackgroundColor); binding.api.setText(ConfigManager.getApi());
binding.status.setOutlineAmbientShadowColor(cardBackgroundColor); binding.frameworkVersion.setText(String.format(Locale.ROOT, "%s (%s)", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
} else {
binding.apiVersion.setText(R.string.not_installed);
binding.api.setText(R.string.not_installed);
binding.frameworkVersion.setText(R.string.not_installed);
} }
binding.about.setOnClickListener(v -> showAbout()); binding.managerVersion.setText(String.format(Locale.ROOT, "%s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
if (Build.VERSION.PREVIEW_SDK_INT != 0) {
binding.systemVersion.setText(String.format(Locale.ROOT, "%1$s Preview (API %2$d)", Build.VERSION.CODENAME, Build.VERSION.SDK_INT));
} else {
binding.systemVersion.setText(String.format(Locale.ROOT, "%1$s (API %2$d)", Build.VERSION.RELEASE, Build.VERSION.SDK_INT));
}
binding.device.setText(getDevice());
binding.systemAbi.setText(Build.SUPPORTED_ABIS[0]);
String info = activity.getString(R.string.info_api_version) +
"\n" +
binding.apiVersion.getText() +
"\n\n" +
activity.getString(R.string.info_api) +
"\n" +
binding.api.getText() +
"\n\n" +
activity.getString(R.string.info_framework_version) +
"\n" +
binding.frameworkVersion.getText() +
"\n\n" +
activity.getString(R.string.info_manager_version) +
"\n" +
binding.managerVersion.getText() +
"\n\n" +
activity.getString(R.string.info_system_version) +
"\n" +
binding.systemVersion.getText() +
"\n\n" +
activity.getString(R.string.info_device) +
"\n" +
binding.device.getText() +
"\n\n" +
activity.getString(R.string.info_system_abi) +
"\n" +
binding.systemAbi.getText();
binding.copyInfo.setOnClickListener(v -> {
ClipboardUtils.put(activity, info);
showHint(R.string.info_copied, false);
});
}
private String getDevice() {
String manufacturer = Character.toUpperCase(Build.MANUFACTURER.charAt(0)) + Build.MANUFACTURER.substring(1);
if (!Build.BRAND.equals(Build.MANUFACTURER)) {
manufacturer += " " + Character.toUpperCase(Build.BRAND.charAt(0)) + Build.BRAND.substring(1);
}
manufacturer += " " + Build.MODEL + " ";
return manufacturer;
} }
public static class AboutDialog extends DialogFragment { public static class AboutDialog extends DialogFragment {
@ -193,84 +232,9 @@ public class HomeFragment extends BaseFragment implements RepoLoader.RepoListene
new AboutDialog().show(getChildFragmentManager(), "about"); new AboutDialog().show(getChildFragmentManager(), "about");
} }
@Override
public void onRepoLoaded() {
final int[] count = new int[]{0};
HashSet<String> processedModules = new HashSet<>();
var modules = moduleUtil.getModules();
if (modules == null) return;
modules.forEach((k, v) -> {
if (!processedModules.contains(k.first)) {
var ver = repoLoader.getModuleLatestVersion(k.first);
if (ver != null && ver.upgradable(v.versionCode, v.versionName)) {
++count[0];
}
processedModules.add(k.first);
}
}
);
runOnUiThread(() -> {
if (count[0] > 0 && binding != null) {
binding.downloadSummary.setText(getResources().getQuantityString(R.plurals.module_repo_upgradable, count[0], count[0]));
} else {
onThrowable(null);
}
});
}
@Override
public void onThrowable(Throwable t) {
runOnUiThread(() -> {
if (binding != null)
binding.downloadSummary.setText(getResources().getString(R.string.module_repo_up_to_date));
});
}
@Override
public void onModulesReloaded() {
onRepoLoaded();
setModulesSummary(moduleUtil.getEnabledModulesCount());
}
private class StartFragmentListener implements View.OnClickListener {
boolean requireInstalled;
int fragment;
StartFragmentListener(int fragment, boolean requireInstalled) {
this.fragment = fragment;
this.requireInstalled = requireInstalled;
}
@Override
public void onClick(View v) {
if (requireInstalled && !ConfigManager.isBinderAlive()) {
showHint(R.string.lsposed_not_active, false);
} else {
getNavController().navigate(fragment);
}
}
}
@Override
public void onResume() {
super.onResume();
if (ConfigManager.isBinderAlive()) {
setModulesSummary(moduleUtil.getEnabledModulesCount());
} else setModulesSummary(0);
}
private void setModulesSummary(int moduleCount) {
runOnUiThread(() -> {
if (binding != null)
binding.modulesSummary.setText(moduleCount == -1 ? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount));
});
}
@Override @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();
repoLoader.removeListener(this);
moduleUtil.removeListener(this);
binding = null; binding = null;
} }
} }

View File

@ -106,6 +106,7 @@ public class LogsFragment extends BaseFragment {
binding = FragmentPagerBinding.inflate(inflater, container, false); binding = FragmentPagerBinding.inflate(inflater, container, false);
binding.appBar.setLiftable(true); binding.appBar.setLiftable(true);
setupToolbar(binding.toolbar, binding.clickView, R.string.Logs, R.menu.menu_logs); setupToolbar(binding.toolbar, binding.clickView, R.string.Logs, R.menu.menu_logs);
binding.toolbar.setNavigationIcon(null);
binding.toolbar.setSubtitle(ConfigManager.isVerboseLogEnabled() ? R.string.enabled_verbose_log : R.string.disabled_verbose_log); binding.toolbar.setSubtitle(ConfigManager.isVerboseLogEnabled() ? R.string.enabled_verbose_log : R.string.disabled_verbose_log);
adapter = new LogPageAdapter(this); adapter = new LogPageAdapter(this);
binding.viewPager.setAdapter(adapter); binding.viewPager.setAdapter(adapter);
@ -389,7 +390,14 @@ public class LogsFragment extends BaseFragment {
@Override @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
super.onBindViewHolder(holder, position); super.onBindViewHolder(holder, position);
holder.item.measure(0, 0); var view = holder.item;
view.measure(0, 0);
int desiredWidth = view.getMeasuredWidth();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = desiredWidth;
if (binding.recyclerView.getWidth() < desiredWidth) {
binding.recyclerView.requestLayout();
}
} }
}; };
} }

View File

@ -147,6 +147,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
binding = FragmentPagerBinding.inflate(inflater, container, false); binding = FragmentPagerBinding.inflate(inflater, container, false);
binding.appBar.setLiftable(true); binding.appBar.setLiftable(true);
setupToolbar(binding.toolbar, binding.clickView, R.string.Modules, R.menu.menu_modules); setupToolbar(binding.toolbar, binding.clickView, R.string.Modules, R.menu.menu_modules);
binding.toolbar.setNavigationIcon(null);
pagerAdapter = new PagerAdapter(this); pagerAdapter = new PagerAdapter(this);
binding.viewPager.setAdapter(pagerAdapter); binding.viewPager.setAdapter(pagerAdapter);
binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {

View File

@ -111,6 +111,7 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
binding.appBar.setLiftable(true); binding.appBar.setLiftable(true);
binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top)); binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top));
setupToolbar(binding.toolbar, binding.clickView, R.string.module_repo, R.menu.menu_repo); setupToolbar(binding.toolbar, binding.clickView, R.string.module_repo, R.menu.menu_repo);
binding.toolbar.setNavigationIcon(null);
adapter = new RepoAdapter(); adapter = new RepoAdapter();
adapter.setHasStableIds(true); adapter.setHasStableIds(true);
adapter.registerAdapterDataObserver(observer); adapter.registerAdapterDataObserver(observer);

View File

@ -72,9 +72,10 @@ public class SettingsFragment extends BaseFragment {
binding = FragmentSettingsBinding.inflate(inflater, container, false); binding = FragmentSettingsBinding.inflate(inflater, container, false);
binding.appBar.setLiftable(true); binding.appBar.setLiftable(true);
setupToolbar(binding.toolbar, binding.clickView, R.string.Settings); setupToolbar(binding.toolbar, binding.clickView, R.string.Settings);
binding.toolbar.setNavigationIcon(null);
if (savedInstanceState == null) { if (savedInstanceState == null) {
getChildFragmentManager().beginTransaction() getChildFragmentManager().beginTransaction()
.add(R.id.container, new PreferenceFragment()).commitNow(); .add(R.id.setting_container, new PreferenceFragment()).commitNow();
} }
if (ConfigManager.isBinderAlive()) { if (ConfigManager.isBinderAlive()) {
binding.toolbar.setSubtitle(String.format(Locale.ROOT, "%s (%d) - %s", binding.toolbar.setSubtitle(String.format(Locale.ROOT, "%s (%d) - %s",

View File

@ -45,7 +45,6 @@ public class ThemeUtil {
static { static {
preferences = App.getPreferences(); preferences = App.getPreferences();
colorThemeMap.put("COLOR_PRIMARY", R.style.ThemeOverlay_color_primary);
colorThemeMap.put("SAKURA", R.style.ThemeOverlay_sakura); colorThemeMap.put("SAKURA", R.style.ThemeOverlay_sakura);
colorThemeMap.put("MATERIAL_RED", R.style.ThemeOverlay_material_red); colorThemeMap.put("MATERIAL_RED", R.style.ThemeOverlay_material_red);
colorThemeMap.put("MATERIAL_PINK", R.style.ThemeOverlay_material_pink); colorThemeMap.put("MATERIAL_PINK", R.style.ThemeOverlay_material_pink);
@ -64,7 +63,6 @@ public class ThemeUtil {
colorThemeMap.put("MATERIAL_ORANGE", R.style.ThemeOverlay_material_orange); colorThemeMap.put("MATERIAL_ORANGE", R.style.ThemeOverlay_material_orange);
colorThemeMap.put("MATERIAL_DEEP_ORANGE", R.style.ThemeOverlay_material_deep_orange); colorThemeMap.put("MATERIAL_DEEP_ORANGE", R.style.ThemeOverlay_material_deep_orange);
colorThemeMap.put("MATERIAL_BROWN", R.style.ThemeOverlay_material_brown); colorThemeMap.put("MATERIAL_BROWN", R.style.ThemeOverlay_material_brown);
colorThemeMap.put("MATERIAL_GREY", R.style.ThemeOverlay_material_grey);
colorThemeMap.put("MATERIAL_BLUE_GREY", R.style.ThemeOverlay_material_blue_grey); colorThemeMap.put("MATERIAL_BLUE_GREY", R.style.ThemeOverlay_material_blue_grey);
} }
@ -102,14 +100,14 @@ public class ThemeUtil {
if (isSystemAccent()) { if (isSystemAccent()) {
return "SYSTEM"; return "SYSTEM";
} }
return preferences.getString("theme_color", "COLOR_PRIMARY"); return preferences.getString("theme_color", "COLOR_BLUE");
} }
@StyleRes @StyleRes
public static int getColorThemeStyleRes() { public static int getColorThemeStyleRes() {
Integer theme = colorThemeMap.get(getColorTheme()); Integer theme = colorThemeMap.get(getColorTheme());
if (theme == null) { if (theme == null) {
return R.style.ThemeOverlay_color_primary; return R.style.ThemeOverlay_material_blue;
} }
return theme; return theme;
} }

View File

@ -22,7 +22,7 @@
<foreground> <foreground>
<!-- 44dp icon scaled to 52dp in 72dp, padding = (1-52/44*24/72)/2 --> <!-- 44dp icon scaled to 52dp in 72dp, padding = (1-52/44*24/72)/2 -->
<inset <inset
android:drawable="@drawable/ic_get_app" android:drawable="@drawable/ic_baseline_get_app_24"
android:inset="30.303%" /> android:inset="30.303%" />
</foreground> </foreground>
</adaptive-icon> </adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_assignment_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_outline_assignment_24" />
</selector>

View File

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M19,3h-4.18C14.4,1.84 13.3,1 12,1c-1.3,0 -2.4,0.84 -2.82,2L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM12,3c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM14,17L7,17v-2h7v2zM17,13L7,13v-2h10v2zM17,9L7,9L7,7h10v2z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M20.5,11H19V7c0,-1.1 -0.9,-2 -2,-2h-4V3.5C13,2.12 11.88,1 10.5,1S8,2.12 8,3.5V5H4c-1.1,0 -1.99,0.9 -1.99,2v3.8H3.5c1.49,0 2.7,1.21 2.7,2.7s-1.21,2.7 -2.7,2.7H2V20c0,1.1 0.9,2 2,2h3.8v-1.5c0,-1.49 1.21,-2.7 2.7,-2.7 1.49,0 2.7,1.21 2.7,2.7V22H17c1.1,0 2,-0.9 2,-2v-4h1.5c1.38,0 2.5,-1.12 2.5,-2.5S21.88,11 20.5,11z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
</vector>

View File

@ -1,29 +0,0 @@
<!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2021 LSPosed Contributors
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@color/material_blue_500"
android:pathData="M20.5,11H19V7c0,-1.1 -0.9,-2 -2,-2h-4V3.5C13,2.12 11.88,1 10.5,1S8,2.12 8,3.5V5H4c-1.1,0 -1.99,0.9 -1.99,2v3.8H3.5c1.49,0 2.7,1.21 2.7,2.7s-1.21,2.7 -2.7,2.7H2V20c0,1.1 0.9,2 2,2h3.8v-1.5c0,-1.49 1.21,-2.7 2.7,-2.7s2.7,1.21 2.7,2.7V22H17c1.1,0 2,-0.9 2,-2v-4h1.5c1.38,0 2.5,-1.12 2.5,-2.5S21.88,11 20.5,11z" />
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_extension_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_outline_extension_24" />
</selector>

View File

@ -1,29 +0,0 @@
<!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2021 LSPosed Contributors
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@color/material_blue_500"
android:pathData="M16.59,9H15V4c0,-0.55 -0.45,-1 -1,-1h-4c-0.55,0 -1,0.45 -1,1v5H7.41c-0.89,0 -1.34,1.08 -0.71,1.71l4.59,4.59c0.39,0.39 1.02,0.39 1.41,0l4.59,-4.59c0.63,-0.63 0.19,-1.71 -0.7,-1.71zM5,19c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1H6c-0.55,0 -1,0.45 -1,1z" />
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_get_app_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_outline_get_app_24" />
</selector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_home_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_outline_home_24" />
</selector>

View File

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M7,15h7v2L7,17zM7,11h10v2L7,13zM7,7h10v2L7,9zM19,3h-4.18C14.4,1.84 13.3,1 12,1c-1.3,0 -2.4,0.84 -2.82,2L5,3c-0.14,0 -0.27,0.01 -0.4,0.04 -0.39,0.08 -0.74,0.28 -1.01,0.55 -0.18,0.18 -0.33,0.4 -0.43,0.64 -0.1,0.23 -0.16,0.49 -0.16,0.77v14c0,0.27 0.06,0.54 0.16,0.78s0.25,0.45 0.43,0.64c0.27,0.27 0.62,0.47 1.01,0.55 0.13,0.02 0.26,0.03 0.4,0.03h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM12,2.75c0.41,0 0.75,0.34 0.75,0.75s-0.34,0.75 -0.75,0.75 -0.75,-0.34 -0.75,-0.75 0.34,-0.75 0.75,-0.75zM19,19L5,19L5,5h14v14z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M10.5,4.5c0.28,0 0.5,0.22 0.5,0.5v2h6v6h2c0.28,0 0.5,0.22 0.5,0.5s-0.22,0.5 -0.5,0.5h-2v6h-2.12c-0.68,-1.75 -2.39,-3 -4.38,-3s-3.7,1.25 -4.38,3H4v-2.12c1.75,-0.68 3,-2.39 3,-4.38 0,-1.99 -1.24,-3.7 -2.99,-4.38L4,7h6V5c0,-0.28 0.22,-0.5 0.5,-0.5m0,-2C9.12,2.5 8,3.62 8,5H4c-1.1,0 -1.99,0.9 -1.99,2v3.8h0.29c1.49,0 2.7,1.21 2.7,2.7s-1.21,2.7 -2.7,2.7H2V20c0,1.1 0.9,2 2,2h3.8v-0.3c0,-1.49 1.21,-2.7 2.7,-2.7s2.7,1.21 2.7,2.7v0.3H17c1.1,0 2,-0.9 2,-2v-4c1.38,0 2.5,-1.12 2.5,-2.5S20.38,11 19,11V7c0,-1.1 -0.9,-2 -2,-2h-4c0,-1.38 -1.12,-2.5 -2.5,-2.5z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M13,5v6h1.17L12,13.17 9.83,11L11,11L11,5h2m2,-2L9,3v6L5,9l7,7 7,-7h-4L15,3zM19,18L5,18v2h14v-2z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,5.69l5,4.5V18h-2v-6H9v6H7v-7.81l5,-4.5M12,3L2,12h3v8h6v-6h2v6h6v-8h3L12,3z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98 0,-0.34 -0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.09,-0.16 -0.26,-0.25 -0.44,-0.25 -0.06,0 -0.12,0.01 -0.17,0.03l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.06,-0.02 -0.12,-0.03 -0.18,-0.03 -0.17,0 -0.34,0.09 -0.43,0.25l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98 0,0.33 0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.09,0.16 0.26,0.25 0.44,0.25 0.06,0 0.12,-0.01 0.17,-0.03l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.06,0.02 0.12,0.03 0.18,0.03 0.17,0 0.34,-0.09 0.43,-0.25l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM17.45,11.27c0.04,0.31 0.05,0.52 0.05,0.73 0,0.21 -0.02,0.43 -0.05,0.73l-0.14,1.13 0.89,0.7 1.08,0.84 -0.7,1.21 -1.27,-0.51 -1.04,-0.42 -0.9,0.68c-0.43,0.32 -0.84,0.56 -1.25,0.73l-1.06,0.43 -0.16,1.13 -0.2,1.35h-1.4l-0.19,-1.35 -0.16,-1.13 -1.06,-0.43c-0.43,-0.18 -0.83,-0.41 -1.23,-0.71l-0.91,-0.7 -1.06,0.43 -1.27,0.51 -0.7,-1.21 1.08,-0.84 0.89,-0.7 -0.14,-1.13c-0.03,-0.31 -0.05,-0.54 -0.05,-0.74s0.02,-0.43 0.05,-0.73l0.14,-1.13 -0.89,-0.7 -1.08,-0.84 0.7,-1.21 1.27,0.51 1.04,0.42 0.9,-0.68c0.43,-0.32 0.84,-0.56 1.25,-0.73l1.06,-0.43 0.16,-1.13 0.2,-1.35h1.39l0.19,1.35 0.16,1.13 1.06,0.43c0.43,0.18 0.83,0.41 1.23,0.71l0.91,0.7 1.06,-0.43 1.27,-0.51 0.7,1.21 -1.07,0.85 -0.89,0.7 0.14,1.13zM12,8c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM12,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z"/>
</vector>

View File

@ -1,30 +0,0 @@
<!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2020 EdXposed Contributors
~ Copyright (C) 2021 LSPosed Contributors
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98 0,-0.34 -0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.09,-0.16 -0.26,-0.25 -0.44,-0.25 -0.06,0 -0.12,0.01 -0.17,0.03l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.06,-0.02 -0.12,-0.03 -0.18,-0.03 -0.17,0 -0.34,0.09 -0.43,0.25l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98 0,0.33 0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.09,0.16 0.26,0.25 0.44,0.25 0.06,0 0.12,-0.01 0.17,-0.03l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.06,0.02 0.12,0.03 0.18,0.03 0.17,0 0.34,-0.09 0.43,-0.25l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM17.45,11.27c0.04,0.31 0.05,0.52 0.05,0.73 0,0.21 -0.02,0.43 -0.05,0.73l-0.14,1.13 0.89,0.7 1.08,0.84 -0.7,1.21 -1.27,-0.51 -1.04,-0.42 -0.9,0.68c-0.43,0.32 -0.84,0.56 -1.25,0.73l-1.06,0.43 -0.16,1.13 -0.2,1.35h-1.4l-0.19,-1.35 -0.16,-1.13 -1.06,-0.43c-0.43,-0.18 -0.83,-0.41 -1.23,-0.71l-0.91,-0.7 -1.06,0.43 -1.27,0.51 -0.7,-1.21 1.08,-0.84 0.89,-0.7 -0.14,-1.13c-0.03,-0.31 -0.05,-0.54 -0.05,-0.74s0.02,-0.43 0.05,-0.73l0.14,-1.13 -0.89,-0.7 -1.08,-0.84 0.7,-1.21 1.27,0.51 1.04,0.42 0.9,-0.68c0.43,-0.32 0.84,-0.56 1.25,-0.73l1.06,-0.43 0.16,-1.13 0.2,-1.35h1.39l0.19,1.35 0.16,1.13 1.06,0.43c0.43,0.18 0.83,0.41 1.23,0.71l0.91,0.7 1.06,-0.43 1.27,-0.51 0.7,1.21 -1.07,0.85 -0.89,0.7 0.14,1.13zM12,8c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM12,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z" />
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_settings_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_outline_settings_24" />
</selector>

View File

@ -23,7 +23,7 @@
<foreground> <foreground>
<!-- 44dp icon scaled to 52dp in 72dp, padding = (1-52/44*24/72)/2 --> <!-- 44dp icon scaled to 52dp in 72dp, padding = (1-52/44*24/72)/2 -->
<inset <inset
android:drawable="@drawable/ic_extension" android:drawable="@drawable/ic_baseline_extension_24"
android:inset="30.303%" /> android:inset="30.303%" />
</foreground> </foreground>
</adaptive-icon> </adaptive-icon>

View File

@ -17,39 +17,37 @@
~ Copyright (C) 2021 LSPosed Contributors ~ Copyright (C) 2021 LSPosed Contributors
--> -->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.slidingpanelayout.widget.SlidingPaneLayout android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:animateLayoutChanges="true">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/home_fragment"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:name="org.lsposed.manager.ui.fragment.HomeFragment" />
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment" android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment" android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="300dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="3" android:background="?android:colorBackground"
app:defaultNavHost="true" app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/nav"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/nav_graph" /> app:navGraph="@navigation/nav_graph" />
</androidx.slidingpanelayout.widget.SlidingPaneLayout>
</androidx.constraintlayout.widget.ConstraintLayout> <com.google.android.material.navigationrail.NavigationRailView
android:id="@+id/nav"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:menu="@menu/navigation_menu"
app:menuGravity="center" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -54,13 +54,13 @@
android:paddingTop="8dp" android:paddingTop="8dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <com.google.android.material.textview.MaterialTextView
style="?attr/textAppearanceHeadline5" style="?attr/textAppearanceHeadline5"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/manager_crashed" /> android:text="@string/manager_crashed" />
<TextView <com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"

View File

@ -1,37 +1,54 @@
<?xml version="1.0" encoding="utf-8"?><!-- <?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed. ~ This file is part of LSPosed.
~ ~
~ LSPosed is free software: you can redistribute it and/or modify ~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by ~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or ~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version. ~ (at your option) any later version.
~ ~
~ LSPosed is distributed in the hope that it will be useful, ~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details. ~ GNU General Public License for more details.
~ ~
~ You should have received a copy of the GNU General Public License ~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>. ~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~ ~
~ Copyright (C) 2021 LSPosed Contributors ~ Copyright (C) 2021 LSPosed Contributors
--> -->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
app:edgeToEdge="true">
<androidx.fragment.app.FragmentContainerView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/nav_host_fragment" android:id="@+id/container"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent" <androidx.fragment.app.FragmentContainerView
app:layout_constraintLeft_toLeftOf="parent" android:id="@+id/nav_host_fragment"
app:layout_constraintRight_toRightOf="parent" android:name="androidx.navigation.fragment.NavHostFragment"
app:layout_constraintTop_toTopOf="parent" android:layout_width="match_parent"
app:navGraph="@navigation/nav_graph" /> android:layout_height="0dp"
</androidx.constraintlayout.widget.ConstraintLayout> android:background="?android:colorBackground"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/nav_graph" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:fitsSystemWindowsInsets="bottom"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -36,20 +36,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp"> android:layout_marginStart="16dp">
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/design_about_title" android:id="@+id/design_about_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="18sp" android:textSize="18sp"
android:textAppearance="@android:style/TextAppearance.Material.Body1" /> android:textAppearance="@android:style/TextAppearance.Material.Body1" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/design_about_version" android:id="@+id/design_about_version"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="14sp" /> android:textSize="14sp" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/design_about_info" android:id="@+id/design_about_info"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -1,122 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2020 EdXposed Contributors
~ Copyright (C) 2021 LSPosed Contributors
-->
<rikka.widget.borderview.BorderNestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="?dialogPreferredPadding"
android:paddingTop="?dialogPreferredPadding">
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_api_version" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/api_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/not_installed" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_api" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/api"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/not_installed" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_framework_version" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/framework_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/not_installed" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_manager_version" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/manager_version"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_system_version" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/system_version"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_device" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/device"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_system_abi" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/system_abi"
android:layout_width="match_parent"
android:paddingBottom="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
</rikka.widget.borderview.BorderNestedScrollView>

View File

@ -21,13 +21,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel" style="@style/DeviceInfoDialogLabel"
android:id="@+id/title" android:id="@+id/title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<TextView <com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogValue" style="@style/DeviceInfoDialogValue"
android:id="@+id/value" android:id="@+id/value"
android:gravity="center_vertical" android:gravity="center_vertical"

View File

@ -13,7 +13,7 @@
~ ~
~ You should have received a copy of the GNU General Public License ~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>. ~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~ ~
~ Copyright (C) 2020 EdXposed Contributors ~ Copyright (C) 2020 EdXposed Contributors
~ Copyright (C) 2021 LSPosed Contributors ~ Copyright (C) 2021 LSPosed Contributors
--> -->
@ -23,9 +23,9 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:consumeSystemWindowsInsets="start|end" app:consumeSystemWindowsInsets="@integer/internal_fragment_insets"
app:edgeToEdge="true" app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end"> app:fitsSystemWindowsInsets="@integer/internal_fragment_insets">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
@ -33,7 +33,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
app:fitsSystemWindowsInsets="top"> app:fitsSystemWindowsInsets="@integer/internal_fragment_top_insets">
<com.google.android.material.appbar.SubtitleCollapsingToolbarLayout <com.google.android.material.appbar.SubtitleCollapsingToolbarLayout
style="?attr/collapsingToolbarLayoutLargeStyle" style="?attr/collapsingToolbarLayoutLargeStyle"
@ -60,13 +60,9 @@
android:id="@+id/master_switch" android:id="@+id/master_switch"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="1"
app:layout_scrollEffect="compress"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:switchOffText="@string/enable_module" app:switchOffText="@string/enable_module"
app:switchOnText="@string/enable_module" /> app:switchOnText="@string/enable_module" />
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
@ -80,9 +76,9 @@
android:tooltipText="@string/module_settings" android:tooltipText="@string/module_settings"
android:visibility="gone" android:visibility="gone"
app:backgroundTint="?attr/colorPrimary" app:backgroundTint="?attr/colorPrimary"
app:layout_fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets"
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior" app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
app:layout_fitsSystemWindowsInsets="bottom" app:tint="?attr/colorOnPrimary" />
app:tint="?attr/colorSurface" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -107,7 +103,7 @@
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop" app:borderTopVisibility="whenTop"
app:fitsSystemWindowsInsets="bottom" /> app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout> </LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -36,7 +36,7 @@
android:layout_marginEnd="?attr/dialogPreferredPadding" android:layout_marginEnd="?attr/dialogPreferredPadding"
android:max="10000" /> android:max="10000" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/message" android:id="@+id/message"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -23,41 +23,54 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:consumeSystemWindowsInsets="start|end" app:consumeSystemWindowsInsets="@integer/internal_fragment_insets"
app:edgeToEdge="true" app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end"> app:fitsSystemWindowsInsets="@integer/internal_fragment_insets">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar" android:id="@+id/app_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="true"> android:fitsSystemWindows="false"
app:fitsSystemWindowsInsets="@integer/internal_fragment_top_insets">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/toolbar" style="?collapsingToolbarLayoutLargeStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="?collapsingToolbarLayoutLargeSize"
android:elevation="0dp" android:fitsSystemWindows="false"
android:minHeight="?attr/actionBarSize" app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentInsetStart="24dp" app:titleCollapseMode="scale">
app:logo="@drawable/ic_launcher"
app:titleMarginStart="48dp" /> <View
android:id="@+id/click_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:elevation="0dp"
app:layout_collapseMode="pin"
app:logo="@drawable/ic_launcher" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:clipChildren="false" app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets"
android:clipToPadding="false" app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:paddingTop="?actionBarSize"
app:fitsSystemWindowsInsets="top|bottom"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<rikka.widget.borderview.BorderNestedScrollView <rikka.widget.borderview.BorderNestedScrollView
android:id="@+id/nestedScrollView" android:id="@+id/nestedScrollView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scrollbars="none"
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop"> app:borderTopVisibility="whenTop">
@ -66,252 +79,254 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
android:paddingHorizontal="@dimen/m3_appbar_expanded_title_margin_horizontal"
android:paddingVertical="?dialogPreferredPadding"
tools:context=".ui.activity.MainActivity"> tools:context=".ui.activity.MainActivity">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/status" android:id="@+id/status"
style="@style/HomeCard.Primary" style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:outlineAmbientShadowColor="?colorPrimary"
android:outlineSpotShadowColor="?colorPrimary"
android:stateListAnimator="@null"
app:cardBackgroundColor="?colorPrimary"
app:cardElevation="@dimen/home_primary_elevation"
app:cardPreventCornerOverlap="false"
tools:targetApi="p">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="16dp" android:padding="?dialogPreferredPadding">
android:paddingVertical="24dp">
<ImageView <ImageView
android:id="@+id/status_icon" android:id="@+id/status_icon"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:tint="?colorOnPrimary"
app:srcCompat="@drawable/ic_round_check_circle_24" app:srcCompat="@drawable/ic_round_check_circle_24"
app:tint="@color/primary_text_material_inverse" /> tools:ignore="ContentDescription" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/status_title" android:id="@+id/status_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_toEndOf="@id/status_icon" android:layout_toEndOf="@id/status_icon"
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:textAppearance="?android:attr/textAppearanceListItem" android:textAppearance="?textAppearanceTitleMedium"
android:textColor="@color/primary_text_material_inverse" android:textColor="?colorOnPrimary"
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/status_summary" android:id="@+id/status_summary"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/status_title" android:layout_below="@id/status_title"
android:layout_alignStart="@id/status_title" android:layout_alignStart="@id/status_title"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?textAppearanceBodyMedium"
android:textColor="@color/secondary_text_material_inverse" /> android:textColor="?colorOnPrimary" />
</RelativeLayout> </RelativeLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/modules" android:id="@+id/warning_card"
style="@style/HomeCard.Secondary" style="@style/Widget.Material3.CardView.Outlined"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:tooltipText="@string/Modules"> android:layout_marginTop="16dp"
app:cardBackgroundColor="?colorErrorContainer">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<ImageView
android:id="@+id/modules_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
android:contentDescription="@string/Modules"
app:srcCompat="@drawable/ic_extension" />
<TextView
android:id="@+id/modules_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_toEndOf="@id/modules_icon"
android:text="@string/Modules"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp" />
<TextView
android:id="@+id/modules_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/modules_title"
android:layout_alignStart="@id/modules_title"
android:text="@string/module_repo_loading"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/download"
style="@style/HomeCard.Secondary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tooltipText="@string/module_repo">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<ImageView
android:id="@+id/download_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
android:contentDescription="@string/module_repo"
app:srcCompat="@drawable/ic_get_app" />
<TextView
android:id="@+id/download_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_toEndOf="@id/download_icon"
android:text="@string/module_repo"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp" />
<TextView
android:id="@+id/download_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/download_title"
android:layout_alignStart="@id/download_title"
android:text="@string/module_repo_loading"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/logs"
style="@style/HomeCard.Tertiary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tooltipText="@string/Logs">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:orientation="vertical"
android:orientation="horizontal" android:padding="?dialogPreferredPadding">
android:padding="16dp">
<ImageView <com.google.android.material.textview.MaterialTextView
android:layout_width="24dp" android:id="@+id/warning_title"
android:layout_height="24dp"
android:contentDescription="@string/Logs"
app:srcCompat="@drawable/ic_round_assignment_24" />
<TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:textAppearance="?textAppearanceTitleMedium"
android:text="@string/Logs" android:textColor="?colorOnErrorContainer" />
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp" /> <com.google.android.material.textview.MaterialTextView
android:id="@+id/warning_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?textAppearanceBodyMedium"
android:textColor="?colorOnErrorContainer" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/settings" android:id="@+id/update_card"
style="@style/HomeCard.Tertiary" style="@style/Widget.Material3.CardView.Outlined"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:tooltipText="@string/Settings"> android:layout_marginTop="16dp"
app:cardBackgroundColor="?colorSecondaryContainer">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:orientation="vertical"
android:orientation="horizontal" android:padding="?dialogPreferredPadding">
android:padding="16dp">
<ImageView <com.google.android.material.textview.MaterialTextView
android:layout_width="24dp" android:id="@+id/update_title"
android:layout_height="24dp"
android:contentDescription="@string/Settings"
app:srcCompat="@drawable/ic_round_settings_24" />
<TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:textAppearance="?textAppearanceTitleMedium"
android:text="@string/Settings" android:textColor="?colorOnSecondaryContainer" />
android:textAppearance="?android:attr/textAppearanceListItem" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/update_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?textAppearanceBodyMedium"
android:textColor="?colorOnSecondaryContainer" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?dialogPreferredPadding"
android:gravity="end"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/update_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/install" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/issue" android:id="@+id/info_card"
style="@style/HomeCard.Tertiary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:tooltipText="@string/feedback_or_suggestion"> android:layout_marginTop="16dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:orientation="vertical"
android:orientation="horizontal" android:padding="?dialogPreferredPadding">
android:padding="16dp">
<ImageView <com.google.android.material.textview.MaterialTextView
android:layout_width="24dp" style="@style/DeviceInfoDialogLabel"
android:layout_height="24dp" android:layout_width="match_parent"
android:contentDescription="@string/feedback_or_suggestion"
app:srcCompat="@drawable/ic_baseline_chat_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:text="@string/info_api_version" />
android:text="@string/feedback_or_suggestion"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.textview.MaterialTextView
android:id="@+id/about" android:id="@+id/api_version"
style="@style/HomeCard.Tertiary" style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tooltipText="@string/About">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@string/About"
app:srcCompat="@drawable/ic_baseline_info_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:text="@string/not_installed" />
android:text="@string/About"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_api" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/api"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/not_installed" />
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_framework_version" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/framework_version"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/not_installed" />
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_manager_version" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/manager_version"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical" />
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_system_version" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/system_version"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_device" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/device"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.google.android.material.textview.MaterialTextView
style="@style/DeviceInfoDialogLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/info_system_abi" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/system_abi"
style="@style/DeviceInfoDialogValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="0dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/copy_info"
style="?borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/copy" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
</rikka.widget.borderview.BorderNestedScrollView> </rikka.widget.borderview.BorderNestedScrollView>
</FrameLayout> </FrameLayout>

View File

@ -22,9 +22,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
app:consumeSystemWindowsInsets="start|end" app:consumeSystemWindowsInsets="@integer/internal_fragment_insets"
app:edgeToEdge="true" app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end"> app:fitsSystemWindowsInsets="@integer/internal_fragment_insets">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
@ -32,7 +32,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
app:fitsSystemWindowsInsets="top"> app:fitsSystemWindowsInsets="@integer/internal_fragment_top_insets">
<com.google.android.material.appbar.SubtitleCollapsingToolbarLayout <com.google.android.material.appbar.SubtitleCollapsingToolbarLayout
android:id="@+id/toolbar_layout" android:id="@+id/toolbar_layout"
@ -91,7 +91,7 @@
android:tooltipText="@string/add_module_to_user" android:tooltipText="@string/add_module_to_user"
android:visibility="gone" android:visibility="gone"
app:backgroundTint="?attr/colorPrimary" app:backgroundTint="?attr/colorPrimary"
app:layout_fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets"
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior" app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
app:layout_fitsSystemWindowsInsets="bottom" app:tint="?attr/colorOnPrimary" />
app:tint="?attr/colorSurface" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -22,16 +22,16 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:consumeSystemWindowsInsets="start|end" app:consumeSystemWindowsInsets="@integer/internal_fragment_insets"
app:edgeToEdge="true" app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end"> app:fitsSystemWindowsInsets="@integer/internal_fragment_insets">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar" android:id="@+id/app_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
app:fitsSystemWindowsInsets="top"> app:fitsSystemWindowsInsets="@integer/internal_fragment_top_insets">
<com.google.android.material.appbar.SubtitleCollapsingToolbarLayout <com.google.android.material.appbar.SubtitleCollapsingToolbarLayout
android:id="@+id/toolbar_layout" android:id="@+id/toolbar_layout"
@ -79,7 +79,7 @@
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop" app:borderTopVisibility="whenTop"
app:fitsSystemWindowsInsets="bottom" /> app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout> </FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -22,16 +22,16 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:consumeSystemWindowsInsets="start|end" app:consumeSystemWindowsInsets="@integer/internal_fragment_insets"
app:edgeToEdge="true" app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end"> app:fitsSystemWindowsInsets="@integer/internal_fragment_insets">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar" android:id="@+id/app_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
app:fitsSystemWindowsInsets="top"> app:fitsSystemWindowsInsets="@integer/internal_fragment_top_insets">
<com.google.android.material.appbar.SubtitleCollapsingToolbarLayout <com.google.android.material.appbar.SubtitleCollapsingToolbarLayout
style="?attr/collapsingToolbarLayoutLargeStyle" style="?attr/collapsingToolbarLayoutLargeStyle"
@ -56,7 +56,7 @@
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/container" android:id="@+id/setting_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" /> app:layout_behavior="@string/appbar_scrolling_view_behavior" />

View File

@ -23,5 +23,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false" android:clipToPadding="false"
android:fontFamily="monospace" android:fontFamily="monospace"
android:paddingHorizontal="@dimen/m3_appbar_expanded_title_margin_horizontal"
android:textColor="?attr/colorOnSurface" android:textColor="?attr/colorOnSurface"
android:textSize="12sp" /> android:textSize="12sp" />

View File

@ -47,7 +47,7 @@
tools:ignore="ContentDescription" tools:ignore="ContentDescription"
tools:srcCompat="@tools:sample/backgrounds/scenic" /> tools:srcCompat="@tools:sample/backgrounds/scenic" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/app_name" android:id="@+id/app_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -78,7 +78,7 @@
app:layout_constraintTop_toBottomOf="@id/app_name" app:layout_constraintTop_toBottomOf="@id/app_name"
tools:text="@tools:sample/lorem" /> tools:text="@tools:sample/lorem" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/hint" android:id="@+id/hint"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -92,7 +92,7 @@
app:layout_constraintTop_toBottomOf="@id/description" app:layout_constraintTop_toBottomOf="@id/description"
tools:text="@tools:sample/lorem" /> tools:text="@tools:sample/lorem" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/version_name" android:id="@+id/version_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -38,7 +38,7 @@
android:layout_gravity="center" android:layout_gravity="center"
tools:ignore="RtlSymmetry"> tools:ignore="RtlSymmetry">
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/app_name" android:id="@+id/app_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -65,7 +65,7 @@
app:layout_constraintTop_toBottomOf="@id/app_name" app:layout_constraintTop_toBottomOf="@id/app_name"
tools:text="@tools:sample/lorem" /> tools:text="@tools:sample/lorem" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/hint" android:id="@+id/hint"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -36,7 +36,7 @@
app:showAnimationBehavior="outward" app:showAnimationBehavior="outward"
app:hideAnimationBehavior="inward" /> app:hideAnimationBehavior="inward" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -22,23 +22,23 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false"
android:clipChildren="false" android:clipChildren="false"
app:fitsSystemWindowsInsets="bottom"> android:clipToPadding="false"
app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets">
<rikka.widget.borderview.BorderNestedScrollView <rikka.widget.borderview.BorderNestedScrollView
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:borderTopVisibility="whenTop" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderBottomVisibility="never"> app:borderTopVisibility="whenTop">
<org.lsposed.manager.ui.widget.ScrollWebView <org.lsposed.manager.ui.widget.ScrollWebView
android:id="@+id/readme" android:id="@+id/readme"
android:padding="16dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp"
android:scrollbars="none" /> android:scrollbars="none" />
</rikka.widget.borderview.BorderNestedScrollView> </rikka.widget.borderview.BorderNestedScrollView>
</FrameLayout> </FrameLayout>

View File

@ -29,4 +29,4 @@
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop" app:borderTopVisibility="whenTop"
app:fitsSystemWindowsInsets="bottom" /> app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets" />

View File

@ -40,7 +40,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:ignore="RtlSymmetry"> tools:ignore="RtlSymmetry">
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -38,7 +38,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:ignore="RtlSymmetry"> tools:ignore="RtlSymmetry">
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -31,6 +31,6 @@
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop" app:borderTopVisibility="whenTop"
app:fitsSystemWindowsInsets="bottom" app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets"
tools:ignore="UnusedResources" tools:ignore="UnusedResources"
tools:viewBindingIgnore="true" /> tools:viewBindingIgnore="true" />

View File

@ -22,7 +22,7 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<LinearLayout <LinearLayout
android:id="@+id/container" android:id="@+id/dialog_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"

View File

@ -34,5 +34,5 @@
app:borderBottomVisibility="never" app:borderBottomVisibility="never"
app:borderTopDrawable="@null" app:borderTopDrawable="@null"
app:borderTopVisibility="whenTop" app:borderTopVisibility="whenTop"
app:fitsSystemWindowsInsets="bottom" /> app:fitsSystemWindowsInsets="@integer/internal_fragment_bottom_insets" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2021 LSPosed Contributors
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/main_fragment"
android:icon="@drawable/ic_home_checkable"
android:menuCategory="container"
android:title="@string/overview" />
<item
android:id="@+id/modules_fragment"
android:icon="@drawable/ic_extension_checkable"
android:menuCategory="container"
android:title="@string/Modules" />
<item
android:id="@+id/repo_fragment"
android:icon="@drawable/ic_get_app_checkable"
android:menuCategory="container"
android:title="@string/module_repo" />
<item
android:id="@+id/logs_fragment"
android:icon="@drawable/ic_assignment_checkable"
android:menuCategory="container"
android:title="@string/Logs" />
<item
android:id="@+id/settings_fragment"
android:icon="@drawable/ic_settings_checkable"
android:menuCategory="container"
android:title="@string/Settings" />
</menu>

View File

@ -17,6 +17,18 @@
~ Copyright (C) 2021 LSPosed Contributors ~ Copyright (C) 2021 LSPosed Contributors
--> -->
<resources> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<color name="color_primary">@color/color_primary_dark</color> <item
</resources> android:id="@+id/menu_issue"
android:actionViewClass="androidx.appcompat.widget.SearchView"
android:icon="@drawable/ic_baseline_chat_24"
android:showAsAction="never"
android:title="@string/feedback_or_suggestion" />
<item
android:id="@+id/menu_about"
android:actionViewClass="androidx.appcompat.widget.SearchView"
android:icon="@drawable/ic_baseline_info_24"
android:showAsAction="never"
android:title="@string/About" />
</menu>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2021 LSPosed Contributors
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/repo_fragment"
android:icon="@drawable/ic_get_app_checkable"
android:menuCategory="container"
android:title="@string/module_repo" />
<item
android:id="@+id/modules_fragment"
android:icon="@drawable/ic_extension_checkable"
android:menuCategory="container"
android:title="@string/Modules" />
<item
android:id="@+id/main_fragment"
android:icon="@drawable/ic_home_checkable"
android:menuCategory="container"
android:title="@string/overview" />
<item
android:id="@+id/logs_fragment"
android:icon="@drawable/ic_assignment_checkable"
android:menuCategory="container"
android:title="@string/Logs" />
<item
android:id="@+id/settings_fragment"
android:icon="@drawable/ic_settings_checkable"
android:menuCategory="container"
android:title="@string/Settings" />
</menu>

View File

@ -24,36 +24,7 @@
<fragment <fragment
android:id="@+id/main_fragment" android:id="@+id/main_fragment"
android:name="org.lsposed.manager.ui.fragment.HomeFragment" android:name="org.lsposed.manager.ui.fragment.HomeFragment"
android:label="MainFragment"> android:label="main"/>
<action
android:id="@+id/action_main_fragment_to_settings_fragment"
app:destination="@id/settings_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop" />
<action
android:id="@+id/action_main_fragment_to_logs_fragment"
app:destination="@id/logs_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop" />
<action
android:id="@+id/action_main_fragment_to_repo_fragment"
app:destination="@id/repo_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop" />
<action
android:id="@+id/action_main_fragment_to_modules_fragment"
app:destination="@id/modules_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop" />
</fragment>
<fragment <fragment
android:id="@+id/logs_fragment" android:id="@+id/logs_fragment"
android:name="org.lsposed.manager.ui.fragment.LogsFragment" android:name="org.lsposed.manager.ui.fragment.LogsFragment"
@ -136,42 +107,6 @@
app:popUpTo="@id/main_fragment" app:popUpTo="@id/main_fragment"
app:popUpToInclusive="true" /> app:popUpToInclusive="true" />
</fragment> </fragment>
<action
android:id="@+id/action_settings_fragment"
app:destination="@id/settings_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop"
app:popUpTo="@id/settings_fragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_logs_fragment"
app:destination="@id/logs_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop"
app:popUpTo="@id/logs_fragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_repo_fragment"
app:destination="@id/repo_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop"
app:popUpTo="@id/repo_fragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_modules_fragment"
app:destination="@id/modules_fragment"
app:enterAnim="@anim/fragment_enter"
app:exitAnim="@anim/fragment_exit"
app:popEnterAnim="@anim/fragment_enter_pop"
app:popExitAnim="@anim/fragment_exit_pop"
app:popUpTo="@id/modules_fragment"
app:popUpToInclusive="true" />
<action <action
android:id="@+id/action_app_list_fragment" android:id="@+id/action_app_list_fragment"
app:destination="@id/app_list_fragment" app:destination="@id/app_list_fragment"

View File

@ -18,8 +18,6 @@
--> -->
<resources> <resources>
<color name="color_primary">@color/color_primary_dark</color>
<color name="ic_launcher_foreground">@color/material_pink_300</color> <color name="ic_launcher_foreground">@color/material_pink_300</color>
<color name="ic_launcher_background">@color/material_light_blue_50</color> <color name="ic_launcher_background">@color/material_light_blue_50</color>

View File

@ -20,24 +20,516 @@
--> -->
<resources> <resources>
<color name="material_red">@color/material_red_200</color> <color name="red_theme_primary">#FFB4A8</color>
<color name="material_pink">@color/material_pink_200</color> <color name="red_theme_onPrimary">#680001</color>
<color name="material_purple">@color/material_purple_200</color> <color name="red_theme_primaryContainer">#940002</color>
<color name="material_deep_purple">@color/material_deep_purple_200</color> <color name="red_theme_onPrimaryContainer">#FFDAD3</color>
<color name="material_indigo">@color/material_indigo_200</color> <color name="red_theme_secondary">#E7BCB6</color>
<color name="material_blue">@color/material_blue_200</color> <color name="red_theme_onSecondary">#442A26</color>
<color name="material_light_blue">@color/material_light_blue_200</color> <color name="red_theme_secondaryContainer">#5D3F3B</color>
<color name="material_cyan">@color/material_cyan_200</color> <color name="red_theme_onSecondaryContainer">#FFDAD4</color>
<color name="material_teal">@color/material_teal_200</color> <color name="red_theme_tertiary">#DFC38C</color>
<color name="material_green">@color/material_green_200</color> <color name="red_theme_onTertiary">#3F2E04</color>
<color name="material_light_green">@color/material_light_green_200</color> <color name="red_theme_tertiaryContainer">#574419</color>
<color name="material_lime">@color/material_lime_200</color> <color name="red_theme_onTertiaryContainer">#FCDFA6</color>
<color name="material_yellow">@color/material_yellow_200</color> <color name="red_theme_error">#FFB4A9</color>
<color name="material_amber">@color/material_amber_200</color> <color name="red_theme_errorContainer">#930006</color>
<color name="material_orange">@color/material_orange_200</color> <color name="red_theme_onError">#680003</color>
<color name="material_deep_orange">@color/material_deep_orange_200</color> <color name="red_theme_onErrorContainer">#FFDAD4</color>
<color name="material_brown">@color/material_brown_200</color> <color name="red_theme_background">#211A19</color>
<color name="material_grey">@color/material_grey_200</color> <color name="red_theme_onBackground">#EDE0DE</color>
<color name="material_blue_grey">@color/material_blue_grey_200</color> <color name="red_theme_surface">#211A19</color>
<color name="sakura">#ffa0ab</color> <color name="red_theme_onSurface">#EDE0DE</color>
<color name="red_theme_surfaceVariant">#534341</color>
<color name="red_theme_onSurfaceVariant">#D8C2BF</color>
<color name="red_theme_outline">#A08C89</color>
<color name="red_theme_inverseOnSurface">#211A19</color>
<color name="red_theme_inverseSurface">#EDE0DE</color>
<color name="red_theme_primaryInverse">#BC1714</color>
<color name="pink_theme_primary">#FFB2C0</color>
<color name="pink_theme_onPrimary">#670024</color>
<color name="pink_theme_primaryContainer">#900036</color>
<color name="pink_theme_onPrimaryContainer">#FFD9DF</color>
<color name="pink_theme_secondary">#E5BDC2</color>
<color name="pink_theme_onSecondary">#43292D</color>
<color name="pink_theme_secondaryContainer">#5C3F43</color>
<color name="pink_theme_onSecondaryContainer">#FFD9DE</color>
<color name="pink_theme_tertiary">#EBBF90</color>
<color name="pink_theme_onTertiary">#452B08</color>
<color name="pink_theme_tertiaryContainer">#5F411C</color>
<color name="pink_theme_onTertiaryContainer">#FFDDB8</color>
<color name="pink_theme_error">#FFB4A9</color>
<color name="pink_theme_errorContainer">#930006</color>
<color name="pink_theme_onError">#680003</color>
<color name="pink_theme_onErrorContainer">#FFDAD4</color>
<color name="pink_theme_background">#201A1B</color>
<color name="pink_theme_onBackground">#ECE0E0</color>
<color name="pink_theme_surface">#201A1B</color>
<color name="pink_theme_onSurface">#ECE0E0</color>
<color name="pink_theme_surfaceVariant">#524345</color>
<color name="pink_theme_onSurfaceVariant">#D6C1C3</color>
<color name="pink_theme_outline">#9F8C8E</color>
<color name="pink_theme_inverseOnSurface">#201A1B</color>
<color name="pink_theme_inverseSurface">#ECE0E0</color>
<color name="pink_theme_primaryInverse">#BC0049</color>
<color name="purple_theme_primary">#FBAAFF</color>
<color name="purple_theme_onPrimary">#570068</color>
<color name="purple_theme_primaryContainer">#7B0091</color>
<color name="purple_theme_onPrimaryContainer">#FFD5FF</color>
<color name="purple_theme_secondary">#D7BFD5</color>
<color name="purple_theme_onSecondary">#3B2B3B</color>
<color name="purple_theme_secondaryContainer">#534153</color>
<color name="purple_theme_onSecondaryContainer">#F5DBF2</color>
<color name="purple_theme_tertiary">#F6B8AE</color>
<color name="purple_theme_onTertiary">#4C251F</color>
<color name="purple_theme_tertiaryContainer">#663B34</color>
<color name="purple_theme_onTertiaryContainer">#FFDAD2</color>
<color name="purple_theme_error">#FFB4A9</color>
<color name="purple_theme_errorContainer">#930006</color>
<color name="purple_theme_onError">#680003</color>
<color name="purple_theme_onErrorContainer">#FFDAD4</color>
<color name="purple_theme_background">#1E1A1D</color>
<color name="purple_theme_onBackground">#E9E0E5</color>
<color name="purple_theme_surface">#1E1A1D</color>
<color name="purple_theme_onSurface">#E9E0E5</color>
<color name="purple_theme_surfaceVariant">#4D444C</color>
<color name="purple_theme_onSurfaceVariant">#D0C3CC</color>
<color name="purple_theme_outline">#998E96</color>
<color name="purple_theme_inverseOnSurface">#1E1A1D</color>
<color name="purple_theme_inverseSurface">#E9E0E5</color>
<color name="purple_theme_primaryInverse">#9A25AE</color>
<color name="deep_purple_theme_primary">#D4BAFF</color>
<color name="deep_purple_theme_onPrimary">#3E008E</color>
<color name="deep_purple_theme_primaryContainer">#5727A7</color>
<color name="deep_purple_theme_onPrimaryContainer">#ECDCFF</color>
<color name="deep_purple_theme_secondary">#CDC2DB</color>
<color name="deep_purple_theme_onSecondary">#342D41</color>
<color name="deep_purple_theme_secondaryContainer">#4B4358</color>
<color name="deep_purple_theme_onSecondaryContainer">#E9DEF7</color>
<color name="deep_purple_theme_tertiary">#F0B8C5</color>
<color name="deep_purple_theme_onTertiary">#4A2530</color>
<color name="deep_purple_theme_tertiaryContainer">#643B46</color>
<color name="deep_purple_theme_onTertiaryContainer">#FFD9E2</color>
<color name="deep_purple_theme_error">#FFB4A9</color>
<color name="deep_purple_theme_errorContainer">#930006</color>
<color name="deep_purple_theme_onError">#680003</color>
<color name="deep_purple_theme_onErrorContainer">#FFDAD4</color>
<color name="deep_purple_theme_background">#1D1B1F</color>
<color name="deep_purple_theme_onBackground">#E6E1E5</color>
<color name="deep_purple_theme_surface">#1D1B1F</color>
<color name="deep_purple_theme_onSurface">#E6E1E5</color>
<color name="deep_purple_theme_surfaceVariant">#49454E</color>
<color name="deep_purple_theme_onSurfaceVariant">#CBC4CF</color>
<color name="deep_purple_theme_outline">#948E99</color>
<color name="deep_purple_theme_inverseOnSurface">#1D1B1F</color>
<color name="deep_purple_theme_inverseSurface">#E6E1E5</color>
<color name="deep_purple_theme_primaryInverse">#6F43BF</color>
<color name="indigo_theme_primary">#B9C3FF</color>
<color name="indigo_theme_onPrimary">#08218A</color>
<color name="indigo_theme_primaryContainer">#293CA0</color>
<color name="indigo_theme_onPrimaryContainer">#DDE0FF</color>
<color name="indigo_theme_secondary">#C4C5DD</color>
<color name="indigo_theme_onSecondary">#2D2F42</color>
<color name="indigo_theme_secondaryContainer">#43465A</color>
<color name="indigo_theme_onSecondaryContainer">#E0E1FA</color>
<color name="indigo_theme_tertiary">#E5BAD7</color>
<color name="indigo_theme_onTertiary">#45263E</color>
<color name="indigo_theme_tertiaryContainer">#5D3C55</color>
<color name="indigo_theme_onTertiaryContainer">#FFD7F3</color>
<color name="indigo_theme_error">#FFB4A9</color>
<color name="indigo_theme_errorContainer">#930006</color>
<color name="indigo_theme_onError">#680003</color>
<color name="indigo_theme_onErrorContainer">#FFDAD4</color>
<color name="indigo_theme_background">#1B1B1F</color>
<color name="indigo_theme_onBackground">#E4E1E6</color>
<color name="indigo_theme_surface">#1B1B1F</color>
<color name="indigo_theme_onSurface">#E4E1E6</color>
<color name="indigo_theme_surfaceVariant">#46464F</color>
<color name="indigo_theme_onSurfaceVariant">#C6C5D0</color>
<color name="indigo_theme_outline">#90909A</color>
<color name="indigo_theme_inverseOnSurface">#1B1B1F</color>
<color name="indigo_theme_inverseSurface">#E4E1E6</color>
<color name="indigo_theme_primaryInverse">#4355B9</color>
<color name="blue_theme_primary">#9CCAFF</color>
<color name="blue_theme_onPrimary">#00325A</color>
<color name="blue_theme_primaryContainer">#00497F</color>
<color name="blue_theme_onPrimaryContainer">#D0E4FF</color>
<color name="blue_theme_secondary">#BBC8DB</color>
<color name="blue_theme_onSecondary">#253140</color>
<color name="blue_theme_secondaryContainer">#3C4858</color>
<color name="blue_theme_onSecondaryContainer">#D6E3F7</color>
<color name="blue_theme_tertiary">#D6BEE4</color>
<color name="blue_theme_onTertiary">#3B2948</color>
<color name="blue_theme_tertiaryContainer">#523F5F</color>
<color name="blue_theme_onTertiaryContainer">#F3DAFF</color>
<color name="blue_theme_error">#FFB4A9</color>
<color name="blue_theme_errorContainer">#930006</color>
<color name="blue_theme_onError">#680003</color>
<color name="blue_theme_onErrorContainer">#FFDAD4</color>
<color name="blue_theme_background">#1B1B1B</color>
<color name="blue_theme_onBackground">#E2E2E6</color>
<color name="blue_theme_surface">#1B1B1B</color>
<color name="blue_theme_onSurface">#E2E2E6</color>
<color name="blue_theme_surfaceVariant">#42474E</color>
<color name="blue_theme_onSurfaceVariant">#C3C7D0</color>
<color name="blue_theme_outline">#8D9199</color>
<color name="blue_theme_inverseOnSurface">#1B1B1B</color>
<color name="blue_theme_inverseSurface">#E2E2E6</color>
<color name="blue_theme_primaryInverse">#0061A6</color>
<color name="light_blue_theme_primary">#8BCEFF</color>
<color name="light_blue_theme_onPrimary">#003450</color>
<color name="light_blue_theme_primaryContainer">#004B71</color>
<color name="light_blue_theme_onPrimaryContainer">#C8E6FF</color>
<color name="light_blue_theme_secondary">#B7C8D8</color>
<color name="light_blue_theme_onSecondary">#22323F</color>
<color name="light_blue_theme_secondaryContainer">#384956</color>
<color name="light_blue_theme_onSecondaryContainer">#D3E4F5</color>
<color name="light_blue_theme_tertiary">#CFBFE8</color>
<color name="light_blue_theme_onTertiary">#362B4B</color>
<color name="light_blue_theme_tertiaryContainer">#4D4162</color>
<color name="light_blue_theme_onTertiaryContainer">#ECDCFF</color>
<color name="light_blue_theme_error">#FFB4A9</color>
<color name="light_blue_theme_errorContainer">#930006</color>
<color name="light_blue_theme_onError">#680003</color>
<color name="light_blue_theme_onErrorContainer">#FFDAD4</color>
<color name="light_blue_theme_background">#1A1C1E</color>
<color name="light_blue_theme_onBackground">#E2E2E5</color>
<color name="light_blue_theme_surface">#1A1C1E</color>
<color name="light_blue_theme_onSurface">#E2E2E5</color>
<color name="light_blue_theme_surfaceVariant">#41474D</color>
<color name="light_blue_theme_onSurfaceVariant">#C1C7CE</color>
<color name="light_blue_theme_outline">#8B9198</color>
<color name="light_blue_theme_inverseOnSurface">#1A1C1E</color>
<color name="light_blue_theme_inverseSurface">#E2E2E5</color>
<color name="light_blue_theme_primaryInverse">#006494</color>
<color name="cyan_theme_primary">#44D8F1</color>
<color name="cyan_theme_onPrimary">#00363F</color>
<color name="cyan_theme_primaryContainer">#004E5A</color>
<color name="cyan_theme_onPrimaryContainer">#9CEFFF</color>
<color name="cyan_theme_secondary">#B1CBD1</color>
<color name="cyan_theme_onSecondary">#1C3439</color>
<color name="cyan_theme_secondaryContainer">#334A4F</color>
<color name="cyan_theme_onSecondaryContainer">#CDE7ED</color>
<color name="cyan_theme_tertiary">#BCC5EA</color>
<color name="cyan_theme_onTertiary">#262F4D</color>
<color name="cyan_theme_tertiaryContainer">#3D4665</color>
<color name="cyan_theme_onTertiaryContainer">#DAE1FF</color>
<color name="cyan_theme_error">#FFB4A9</color>
<color name="cyan_theme_errorContainer">#930006</color>
<color name="cyan_theme_onError">#680003</color>
<color name="cyan_theme_onErrorContainer">#FFDAD4</color>
<color name="cyan_theme_background">#191C1D</color>
<color name="cyan_theme_onBackground">#E1E3E3</color>
<color name="cyan_theme_surface">#191C1D</color>
<color name="cyan_theme_onSurface">#E1E3E3</color>
<color name="cyan_theme_surfaceVariant">#3F484A</color>
<color name="cyan_theme_onSurfaceVariant">#BFC8CA</color>
<color name="cyan_theme_outline">#899294</color>
<color name="cyan_theme_inverseOnSurface">#191C1D</color>
<color name="cyan_theme_inverseSurface">#E1E3E3</color>
<color name="cyan_theme_primaryInverse">#006877</color>
<color name="teal_theme_primary">#53DBC9</color>
<color name="teal_theme_onPrimary">#003730</color>
<color name="teal_theme_primaryContainer">#005047</color>
<color name="teal_theme_onPrimaryContainer">#74F7E5</color>
<color name="teal_theme_secondary">#B1CCC6</color>
<color name="teal_theme_onSecondary">#1C3531</color>
<color name="teal_theme_secondaryContainer">#334B47</color>
<color name="teal_theme_onSecondaryContainer">#CDE8E2</color>
<color name="teal_theme_tertiary">#ADCAE6</color>
<color name="teal_theme_onTertiary">#153349</color>
<color name="teal_theme_tertiaryContainer">#2D4960</color>
<color name="teal_theme_onTertiaryContainer">#CBE5FF</color>
<color name="teal_theme_error">#FFB4A9</color>
<color name="teal_theme_errorContainer">#930006</color>
<color name="teal_theme_onError">#680003</color>
<color name="teal_theme_onErrorContainer">#FFDAD4</color>
<color name="teal_theme_background">#191C1B</color>
<color name="teal_theme_onBackground">#E0E3E1</color>
<color name="teal_theme_surface">#191C1B</color>
<color name="teal_theme_onSurface">#E0E3E1</color>
<color name="teal_theme_surfaceVariant">#3F4947</color>
<color name="teal_theme_onSurfaceVariant">#BFC9C6</color>
<color name="teal_theme_outline">#889390</color>
<color name="teal_theme_inverseOnSurface">#191C1B</color>
<color name="teal_theme_inverseSurface">#E0E3E1</color>
<color name="teal_theme_primaryInverse">#006A5F</color>
<color name="green_theme_primary">#7BDC77</color>
<color name="green_theme_onPrimary">#003907</color>
<color name="green_theme_primaryContainer">#00530C</color>
<color name="green_theme_onPrimaryContainer">#96F990</color>
<color name="green_theme_secondary">#BACCB3</color>
<color name="green_theme_onSecondary">#253423</color>
<color name="green_theme_secondaryContainer">#3C4B39</color>
<color name="green_theme_onSecondaryContainer">#D5E8CE</color>
<color name="green_theme_tertiary">#A1CFD4</color>
<color name="green_theme_onTertiary">#00363A</color>
<color name="green_theme_tertiaryContainer">#1E4D52</color>
<color name="green_theme_onTertiaryContainer">#BCEBF0</color>
<color name="green_theme_error">#FFB4A9</color>
<color name="green_theme_errorContainer">#930006</color>
<color name="green_theme_onError">#680003</color>
<color name="green_theme_onErrorContainer">#FFDAD4</color>
<color name="green_theme_background">#1A1C19</color>
<color name="green_theme_onBackground">#E2E3DD</color>
<color name="green_theme_surface">#1A1C19</color>
<color name="green_theme_onSurface">#E2E3DD</color>
<color name="green_theme_surfaceVariant">#424840</color>
<color name="green_theme_onSurfaceVariant">#C2C8BD</color>
<color name="green_theme_outline">#8C9288</color>
<color name="green_theme_inverseOnSurface">#1A1C19</color>
<color name="green_theme_inverseSurface">#E2E3DD</color>
<color name="green_theme_primaryInverse">#006E17</color>
<color name="light_green_theme_primary">#71DBA8</color>
<color name="light_green_theme_onPrimary">#003822</color>
<color name="light_green_theme_primaryContainer">#005234</color>
<color name="light_green_theme_onPrimaryContainer">#8DF7C2</color>
<color name="light_green_theme_secondary">#B4CCBC</color>
<color name="light_green_theme_onSecondary">#20352A</color>
<color name="light_green_theme_secondaryContainer">#364B3F</color>
<color name="light_green_theme_onSecondaryContainer">#D0E9D8</color>
<color name="light_green_theme_tertiary">#A5CDDE</color>
<color name="light_green_theme_onTertiary">#063542</color>
<color name="light_green_theme_tertiaryContainer">#234C5A</color>
<color name="light_green_theme_onTertiaryContainer">#C0E9FA</color>
<color name="light_green_theme_error">#FFB4A9</color>
<color name="light_green_theme_errorContainer">#930006</color>
<color name="light_green_theme_onError">#680003</color>
<color name="light_green_theme_onErrorContainer">#FFDAD4</color>
<color name="light_green_theme_background">#191C1A</color>
<color name="light_green_theme_onBackground">#E1E3DF</color>
<color name="light_green_theme_surface">#191C1A</color>
<color name="light_green_theme_onSurface">#E1E3DF</color>
<color name="light_green_theme_surfaceVariant">#404943</color>
<color name="light_green_theme_onSurfaceVariant">#C0C9C1</color>
<color name="light_green_theme_outline">#8A938C</color>
<color name="light_green_theme_inverseOnSurface">#191C1A</color>
<color name="light_green_theme_inverseSurface">#E1E3DF</color>
<color name="light_green_theme_primaryInverse">#006C46</color>
<color name="lime_theme_primary">#C1D02C</color>
<color name="lime_theme_onPrimary">#2E3400</color>
<color name="lime_theme_primaryContainer">#434B00</color>
<color name="lime_theme_onPrimaryContainer">#DEED49</color>
<color name="lime_theme_secondary">#C7C9A6</color>
<color name="lime_theme_onSecondary">#30321A</color>
<color name="lime_theme_secondaryContainer">#46492E</color>
<color name="lime_theme_onSecondaryContainer">#E4E5C1</color>
<color name="lime_theme_tertiary">#A3D0C1</color>
<color name="lime_theme_onTertiary">#06372C</color>
<color name="lime_theme_tertiaryContainer">#234E43</color>
<color name="lime_theme_onTertiaryContainer">#BEECDC</color>
<color name="lime_theme_error">#FFB4A9</color>
<color name="lime_theme_errorContainer">#930006</color>
<color name="lime_theme_onError">#680003</color>
<color name="lime_theme_onErrorContainer">#FFDAD4</color>
<color name="lime_theme_background">#1C1C17</color>
<color name="lime_theme_onBackground">#E5E2DA</color>
<color name="lime_theme_surface">#1C1C17</color>
<color name="lime_theme_onSurface">#E5E2DA</color>
<color name="lime_theme_surfaceVariant">#47473B</color>
<color name="lime_theme_onSurfaceVariant">#C8C7B7</color>
<color name="lime_theme_outline">#929282</color>
<color name="lime_theme_inverseOnSurface">#1C1C17</color>
<color name="lime_theme_inverseSurface">#E5E2DA</color>
<color name="lime_theme_primaryInverse">#5A6400</color>
<color name="yellow_theme_primary">#DBC808</color>
<color name="yellow_theme_onPrimary">#373100</color>
<color name="yellow_theme_primaryContainer">#504700</color>
<color name="yellow_theme_onPrimaryContainer">#F9E534</color>
<color name="yellow_theme_secondary">#CEC7A3</color>
<color name="yellow_theme_onSecondary">#353117</color>
<color name="yellow_theme_secondaryContainer">#4B472B</color>
<color name="yellow_theme_onSecondaryContainer">#EBE3BD</color>
<color name="yellow_theme_tertiary">#A6D0B7</color>
<color name="yellow_theme_onTertiary">#113726</color>
<color name="yellow_theme_tertiaryContainer">#284E3B</color>
<color name="yellow_theme_onTertiaryContainer">#C2ECD2</color>
<color name="yellow_theme_error">#FFB4A9</color>
<color name="yellow_theme_errorContainer">#930006</color>
<color name="yellow_theme_onError">#680003</color>
<color name="yellow_theme_onErrorContainer">#FFDAD4</color>
<color name="yellow_theme_background">#1D1C16</color>
<color name="yellow_theme_onBackground">#E7E2D9</color>
<color name="yellow_theme_surface">#1D1C16</color>
<color name="yellow_theme_onSurface">#E7E2D9</color>
<color name="yellow_theme_surfaceVariant">#4A473A</color>
<color name="yellow_theme_onSurfaceVariant">#CBC6B5</color>
<color name="yellow_theme_outline">#959181</color>
<color name="yellow_theme_inverseOnSurface">#1D1C16</color>
<color name="yellow_theme_inverseSurface">#E7E2D9</color>
<color name="yellow_theme_primaryInverse">#6A5F00</color>
<color name="amber_theme_primary">#FABD00</color>
<color name="amber_theme_onPrimary">#402D00</color>
<color name="amber_theme_primaryContainer">#5C4300</color>
<color name="amber_theme_onPrimaryContainer">#FFDF99</color>
<color name="amber_theme_secondary">#D7C4A0</color>
<color name="amber_theme_onSecondary">#3B2F15</color>
<color name="amber_theme_secondaryContainer">#52452A</color>
<color name="amber_theme_onSecondaryContainer">#F4E0BB</color>
<color name="amber_theme_tertiary">#B0CFA9</color>
<color name="amber_theme_onTertiary">#1D361C</color>
<color name="amber_theme_tertiaryContainer">#334D31</color>
<color name="amber_theme_onTertiaryContainer">#CCEBC5</color>
<color name="amber_theme_error">#FFB4A9</color>
<color name="amber_theme_errorContainer">#930006</color>
<color name="amber_theme_onError">#680003</color>
<color name="amber_theme_onErrorContainer">#FFDAD4</color>
<color name="amber_theme_background">#1E1B16</color>
<color name="amber_theme_onBackground">#E9E1D8</color>
<color name="amber_theme_surface">#1E1B16</color>
<color name="amber_theme_onSurface">#E9E1D8</color>
<color name="amber_theme_surfaceVariant">#4D4639</color>
<color name="amber_theme_onSurfaceVariant">#D0C5B4</color>
<color name="amber_theme_outline">#999080</color>
<color name="amber_theme_inverseOnSurface">#1E1B16</color>
<color name="amber_theme_inverseSurface">#E9E1D8</color>
<color name="amber_theme_primaryInverse">#795900</color>
<color name="orange_theme_primary">#FFB86D</color>
<color name="orange_theme_onPrimary">#4B2800</color>
<color name="orange_theme_primaryContainer">#6A3B00</color>
<color name="orange_theme_onPrimaryContainer">#FFDCBB</color>
<color name="orange_theme_secondary">#E2C1A4</color>
<color name="orange_theme_onSecondary">#402C18</color>
<color name="orange_theme_secondaryContainer">#59422C</color>
<color name="orange_theme_onSecondaryContainer">#FEDCBE</color>
<color name="orange_theme_tertiary">#C0CC9A</color>
<color name="orange_theme_onTertiary">#2B3410</color>
<color name="orange_theme_tertiaryContainer">#414B25</color>
<color name="orange_theme_onTertiaryContainer">#DCE8B4</color>
<color name="orange_theme_error">#FFB4A9</color>
<color name="orange_theme_errorContainer">#930006</color>
<color name="orange_theme_onError">#680003</color>
<color name="orange_theme_onErrorContainer">#FFDAD4</color>
<color name="orange_theme_background">#1F1B17</color>
<color name="orange_theme_onBackground">#EBE0D9</color>
<color name="orange_theme_surface">#1F1B17</color>
<color name="orange_theme_onSurface">#EBE0D9</color>
<color name="orange_theme_surfaceVariant">#51453A</color>
<color name="orange_theme_onSurfaceVariant">#D5C3B5</color>
<color name="orange_theme_outline">#9E8E81</color>
<color name="orange_theme_inverseOnSurface">#1F1B17</color>
<color name="orange_theme_inverseSurface">#EBE0D9</color>
<color name="orange_theme_primaryInverse">#8C5000</color>
<color name="deep_orange_theme_primary">#FFB49D</color>
<color name="deep_orange_theme_onPrimary">#601400</color>
<color name="deep_orange_theme_primaryContainer">#882000</color>
<color name="deep_orange_theme_onPrimaryContainer">#FFDACF</color>
<color name="deep_orange_theme_secondary">#E7BDB2</color>
<color name="deep_orange_theme_onSecondary">#442A22</color>
<color name="deep_orange_theme_secondaryContainer">#5D3F37</color>
<color name="deep_orange_theme_onSecondaryContainer">#FFDACF</color>
<color name="deep_orange_theme_tertiary">#D8C58D</color>
<color name="deep_orange_theme_onTertiary">#3A2F04</color>
<color name="deep_orange_theme_tertiaryContainer">#53461A</color>
<color name="deep_orange_theme_onTertiaryContainer">#F5E1A6</color>
<color name="deep_orange_theme_error">#FFB4A9</color>
<color name="deep_orange_theme_errorContainer">#930006</color>
<color name="deep_orange_theme_onError">#680003</color>
<color name="deep_orange_theme_onErrorContainer">#FFDAD4</color>
<color name="deep_orange_theme_background">#201A18</color>
<color name="deep_orange_theme_onBackground">#EDE0DD</color>
<color name="deep_orange_theme_surface">#201A18</color>
<color name="deep_orange_theme_onSurface">#EDE0DD</color>
<color name="deep_orange_theme_surfaceVariant">#53433F</color>
<color name="deep_orange_theme_onSurfaceVariant">#D8C2BC</color>
<color name="deep_orange_theme_outline">#A08C87</color>
<color name="deep_orange_theme_inverseOnSurface">#201A18</color>
<color name="deep_orange_theme_inverseSurface">#EDE0DD</color>
<color name="deep_orange_theme_primaryInverse">#B22D00</color>
<color name="brown_theme_primary">#FFB598</color>
<color name="brown_theme_onPrimary">#5C1A00</color>
<color name="brown_theme_primaryContainer">#7B2E0D</color>
<color name="brown_theme_onPrimaryContainer">#FFDBCD</color>
<color name="brown_theme_secondary">#E7BEB0</color>
<color name="brown_theme_onSecondary">#442A20</color>
<color name="brown_theme_secondaryContainer">#5D4035</color>
<color name="brown_theme_onSecondaryContainer">#FFDBCD</color>
<color name="brown_theme_tertiary">#D5C78E</color>
<color name="brown_theme_onTertiary">#383005</color>
<color name="brown_theme_tertiaryContainer">#50461A</color>
<color name="brown_theme_onTertiaryContainer">#F1E2A7</color>
<color name="brown_theme_error">#FFB4A9</color>
<color name="brown_theme_errorContainer">#930006</color>
<color name="brown_theme_onError">#680003</color>
<color name="brown_theme_onErrorContainer">#FFDAD4</color>
<color name="brown_theme_background">#201A18</color>
<color name="brown_theme_onBackground">#EDE0DC</color>
<color name="brown_theme_surface">#201A18</color>
<color name="brown_theme_onSurface">#EDE0DC</color>
<color name="brown_theme_surfaceVariant">#52433E</color>
<color name="brown_theme_onSurfaceVariant">#D8C2BB</color>
<color name="brown_theme_outline">#A08C86</color>
<color name="brown_theme_inverseOnSurface">#201A18</color>
<color name="brown_theme_inverseSurface">#EDE0DC</color>
<color name="brown_theme_primaryInverse">#9A4523</color>
<color name="blue_grey_theme_primary">#79D0FF</color>
<color name="blue_grey_theme_onPrimary">#00344A</color>
<color name="blue_grey_theme_primaryContainer">#004C69</color>
<color name="blue_grey_theme_onPrimaryContainer">#C2E8FF</color>
<color name="blue_grey_theme_secondary">#B5C9D7</color>
<color name="blue_grey_theme_onSecondary">#20333E</color>
<color name="blue_grey_theme_secondaryContainer">#374955</color>
<color name="blue_grey_theme_onSecondaryContainer">#D1E5F3</color>
<color name="blue_grey_theme_tertiary">#CAC1EA</color>
<color name="blue_grey_theme_onTertiary">#322C4C</color>
<color name="blue_grey_theme_tertiaryContainer">#484264</color>
<color name="blue_grey_theme_onTertiaryContainer">#E7DEFF</color>
<color name="blue_grey_theme_error">#FFB4A9</color>
<color name="blue_grey_theme_errorContainer">#930006</color>
<color name="blue_grey_theme_onError">#680003</color>
<color name="blue_grey_theme_onErrorContainer">#FFDAD4</color>
<color name="blue_grey_theme_background">#191C1E</color>
<color name="blue_grey_theme_onBackground">#E1E2E5</color>
<color name="blue_grey_theme_surface">#191C1E</color>
<color name="blue_grey_theme_onSurface">#E1E2E5</color>
<color name="blue_grey_theme_surfaceVariant">#41484D</color>
<color name="blue_grey_theme_onSurfaceVariant">#C0C7CD</color>
<color name="blue_grey_theme_outline">#8B9298</color>
<color name="blue_grey_theme_inverseOnSurface">#191C1E</color>
<color name="blue_grey_theme_inverseSurface">#E1E2E5</color>
<color name="blue_grey_theme_primaryInverse">#00668B</color>
<color name="sakura_theme_primary">#FFB2BC</color>
<color name="sakura_theme_onPrimary">#5F1123</color>
<color name="sakura_theme_primaryContainer">#7D2939</color>
<color name="sakura_theme_onPrimaryContainer">#FFDADE</color>
<color name="sakura_theme_secondary">#E5BDC0</color>
<color name="sakura_theme_onSecondary">#44292C</color>
<color name="sakura_theme_secondaryContainer">#5C3F42</color>
<color name="sakura_theme_onSecondaryContainer">#FFD9DC</color>
<color name="sakura_theme_tertiary">#E8BF8E</color>
<color name="sakura_theme_onTertiary">#442B06</color>
<color name="sakura_theme_tertiaryContainer">#5D411B</color>
<color name="sakura_theme_onTertiaryContainer">#FFDDB4</color>
<color name="sakura_theme_error">#FFB4A9</color>
<color name="sakura_theme_errorContainer">#930006</color>
<color name="sakura_theme_onError">#680003</color>
<color name="sakura_theme_onErrorContainer">#FFDAD4</color>
<color name="sakura_theme_background">#201A1A</color>
<color name="sakura_theme_onBackground">#ECE0E0</color>
<color name="sakura_theme_surface">#201A1A</color>
<color name="sakura_theme_onSurface">#ECE0E0</color>
<color name="sakura_theme_surfaceVariant">#524344</color>
<color name="sakura_theme_onSurfaceVariant">#D7C2C3</color>
<color name="sakura_theme_outline">#9F8C8D</color>
<color name="sakura_theme_inverseOnSurface">#201A1A</color>
<color name="sakura_theme_inverseSurface">#ECE0E0</color>
<color name="sakura_theme_primaryInverse">#9B404F</color>
</resources> </resources>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="internal_fragment_bottom_insets">0x50</integer> <!-- bottom -->
</resources>

View File

@ -37,7 +37,6 @@
</string-array> </string-array>
<string-array name="color_values" translatable="false"> <string-array name="color_values" translatable="false">
<item>COLOR_PRIMARY</item>
<item>SAKURA</item> <item>SAKURA</item>
<item>MATERIAL_RED</item> <item>MATERIAL_RED</item>
<item>MATERIAL_PINK</item> <item>MATERIAL_PINK</item>
@ -56,12 +55,10 @@
<item>MATERIAL_ORANGE</item> <item>MATERIAL_ORANGE</item>
<item>MATERIAL_DEEP_ORANGE</item> <item>MATERIAL_DEEP_ORANGE</item>
<item>MATERIAL_BROWN</item> <item>MATERIAL_BROWN</item>
<item>MATERIAL_GREY</item>
<item>MATERIAL_BLUE_GREY</item> <item>MATERIAL_BLUE_GREY</item>
</string-array> </string-array>
<string-array name="color_texts" translatable="false"> <string-array name="color_texts" translatable="false">
<item>@string/color_pixel_blue</item>
<item>@string/color_sakura</item> <item>@string/color_sakura</item>
<item>@string/color_red</item> <item>@string/color_red</item>
<item>@string/color_pink</item> <item>@string/color_pink</item>
@ -80,7 +77,6 @@
<item>@string/color_orange</item> <item>@string/color_orange</item>
<item>@string/color_deep_orange</item> <item>@string/color_deep_orange</item>
<item>@string/color_brown</item> <item>@string/color_brown</item>
<item>@string/color_grey</item>
<item>@string/color_blue_grey</item> <item>@string/color_blue_grey</item>
</string-array> </string-array>

View File

@ -19,10 +19,6 @@
--> -->
<resources> <resources>
<color name="color_primary_light">@color/google_blue_600</color>
<color name="color_primary_dark">@color/google_blue_300</color>
<color name="color_primary">@color/color_primary_light</color>
<color name="ic_launcher_foreground">@android:color/white</color> <color name="ic_launcher_foreground">@android:color/white</color>
<color name="ic_launcher_background">@color/material_pink_200</color> <color name="ic_launcher_background">@color/material_pink_200</color>

View File

@ -20,24 +20,536 @@
--> -->
<resources> <resources>
<color name="material_red">@color/material_red_500</color> <color name="red_theme_primary">#BC1714</color>
<color name="material_pink">@color/material_pink_500</color> <color name="red_theme_onPrimary">#FFFFFF</color>
<color name="material_purple">@color/material_purple_500</color> <color name="red_theme_primaryContainer">#FFDAD3</color>
<color name="material_deep_purple">@color/material_deep_purple_500</color> <color name="red_theme_onPrimaryContainer">#410001</color>
<color name="material_indigo">@color/material_indigo_500</color> <color name="red_theme_secondary">#775652</color>
<color name="material_blue">@color/material_blue_500</color> <color name="red_theme_onSecondary">#FFFFFF</color>
<color name="material_light_blue">@color/material_light_blue_500</color> <color name="red_theme_secondaryContainer">#FFDAD4</color>
<color name="material_cyan">@color/material_cyan_500</color> <color name="red_theme_onSecondaryContainer">#2C1512</color>
<color name="material_teal">@color/material_teal_500</color> <color name="red_theme_tertiary">#715C2E</color>
<color name="material_green">@color/material_green_500</color> <color name="red_theme_onTertiary">#FFFFFF</color>
<color name="material_light_green">@color/material_light_green_500</color> <color name="red_theme_tertiaryContainer">#FCDFA6</color>
<color name="material_lime">@color/material_lime_500</color> <color name="red_theme_onTertiaryContainer">#261A00</color>
<color name="material_yellow">@color/material_yellow_500</color> <color name="red_theme_error">#BA1B1B</color>
<color name="material_amber">@color/material_amber_500</color> <color name="red_theme_errorContainer">#FFDAD4</color>
<color name="material_orange">@color/material_orange_500</color> <color name="red_theme_onError">#FFFFFF</color>
<color name="material_deep_orange">@color/material_deep_orange_500</color> <color name="red_theme_onErrorContainer">#410001</color>
<color name="material_brown">@color/material_brown_500</color> <color name="red_theme_background">#FCFCFC</color>
<color name="material_grey">@color/material_grey_500</color> <color name="red_theme_onBackground">#211A19</color>
<color name="material_blue_grey">@color/material_blue_grey_500</color> <color name="red_theme_surface">#FCFCFC</color>
<color name="sakura">#ff9ca8</color> <color name="red_theme_onSurface">#211A19</color>
<color name="red_theme_surfaceVariant">#F4DDDA</color>
<color name="red_theme_onSurfaceVariant">#534341</color>
<color name="red_theme_outline">#857370</color>
<color name="red_theme_inverseOnSurface">#FBEEEC</color>
<color name="red_theme_inverseSurface">#362F2E</color>
<color name="red_theme_primaryInverse">#FFB4A8</color>
<color name="red_theme_seed">#F44336</color>
<color name="pink_theme_primary">#BC0049</color>
<color name="pink_theme_onPrimary">#FFFFFF</color>
<color name="pink_theme_primaryContainer">#FFD9DF</color>
<color name="pink_theme_onPrimaryContainer">#400013</color>
<color name="pink_theme_secondary">#76565B</color>
<color name="pink_theme_onSecondary">#FFFFFF</color>
<color name="pink_theme_secondaryContainer">#FFD9DE</color>
<color name="pink_theme_onSecondaryContainer">#2B1519</color>
<color name="pink_theme_tertiary">#795831</color>
<color name="pink_theme_onTertiary">#FFFFFF</color>
<color name="pink_theme_tertiaryContainer">#FFDDB8</color>
<color name="pink_theme_onTertiaryContainer">#2C1700</color>
<color name="pink_theme_error">#BA1B1B</color>
<color name="pink_theme_errorContainer">#FFDAD4</color>
<color name="pink_theme_onError">#FFFFFF</color>
<color name="pink_theme_onErrorContainer">#410001</color>
<color name="pink_theme_background">#FCFCFC</color>
<color name="pink_theme_onBackground">#201A1B</color>
<color name="pink_theme_surface">#FCFCFC</color>
<color name="pink_theme_onSurface">#201A1B</color>
<color name="pink_theme_surfaceVariant">#F4DDDF</color>
<color name="pink_theme_onSurfaceVariant">#524345</color>
<color name="pink_theme_outline">#847375</color>
<color name="pink_theme_inverseOnSurface">#FAEEEE</color>
<color name="pink_theme_inverseSurface">#362F30</color>
<color name="pink_theme_primaryInverse">#FFB2C0</color>
<color name="pink_theme_seed">#E91E63</color>
<color name="purple_theme_primary">#9A25AE</color>
<color name="purple_theme_onPrimary">#FFFFFF</color>
<color name="purple_theme_primaryContainer">#FFD5FF</color>
<color name="purple_theme_onPrimaryContainer">#350040</color>
<color name="purple_theme_secondary">#6B586B</color>
<color name="purple_theme_onSecondary">#FFFFFF</color>
<color name="purple_theme_secondaryContainer">#F5DBF2</color>
<color name="purple_theme_onSecondaryContainer">#251626</color>
<color name="purple_theme_tertiary">#82524A</color>
<color name="purple_theme_onTertiary">#FFFFFF</color>
<color name="purple_theme_tertiaryContainer">#FFDAD2</color>
<color name="purple_theme_onTertiaryContainer">#32110C</color>
<color name="purple_theme_error">#BA1B1B</color>
<color name="purple_theme_errorContainer">#FFDAD4</color>
<color name="purple_theme_onError">#FFFFFF</color>
<color name="purple_theme_onErrorContainer">#410001</color>
<color name="purple_theme_background">#FCFCFC</color>
<color name="purple_theme_onBackground">#1E1A1D</color>
<color name="purple_theme_surface">#FCFCFC</color>
<color name="purple_theme_onSurface">#1E1A1D</color>
<color name="purple_theme_surfaceVariant">#ECDEE8</color>
<color name="purple_theme_onSurfaceVariant">#4D444C</color>
<color name="purple_theme_outline">#7E747C</color>
<color name="purple_theme_inverseOnSurface">#F7EEF3</color>
<color name="purple_theme_inverseSurface">#332F32</color>
<color name="purple_theme_primaryInverse">#FBAAFF</color>
<color name="purple_theme_seed">#9C27B0</color>
<color name="deep_purple_theme_primary">#6F43BF</color>
<color name="deep_purple_theme_onPrimary">#FFFFFF</color>
<color name="deep_purple_theme_primaryContainer">#ECDCFF</color>
<color name="deep_purple_theme_onPrimaryContainer">#25005A</color>
<color name="deep_purple_theme_secondary">#635B70</color>
<color name="deep_purple_theme_onSecondary">#FFFFFF</color>
<color name="deep_purple_theme_secondaryContainer">#E9DEF7</color>
<color name="deep_purple_theme_onSecondaryContainer">#1F182B</color>
<color name="deep_purple_theme_tertiary">#7F525E</color>
<color name="deep_purple_theme_onTertiary">#FFFFFF</color>
<color name="deep_purple_theme_tertiaryContainer">#FFD9E2</color>
<color name="deep_purple_theme_onTertiaryContainer">#32101B</color>
<color name="deep_purple_theme_error">#BA1B1B</color>
<color name="deep_purple_theme_errorContainer">#FFDAD4</color>
<color name="deep_purple_theme_onError">#FFFFFF</color>
<color name="deep_purple_theme_onErrorContainer">#410001</color>
<color name="deep_purple_theme_background">#FFFBFD</color>
<color name="deep_purple_theme_onBackground">#1D1B1F</color>
<color name="deep_purple_theme_surface">#FFFBFD</color>
<color name="deep_purple_theme_onSurface">#1D1B1F</color>
<color name="deep_purple_theme_surfaceVariant">#E7E0EB</color>
<color name="deep_purple_theme_onSurfaceVariant">#49454E</color>
<color name="deep_purple_theme_outline">#7A757F</color>
<color name="deep_purple_theme_inverseOnSurface">#F5EFF4</color>
<color name="deep_purple_theme_inverseSurface">#323033</color>
<color name="deep_purple_theme_primaryInverse">#D4BAFF</color>
<color name="deep_purple_theme_seed">#673AB7</color>
<color name="indigo_theme_primary">#4355B9</color>
<color name="indigo_theme_onPrimary">#FFFFFF</color>
<color name="indigo_theme_primaryContainer">#DDE0FF</color>
<color name="indigo_theme_onPrimaryContainer">#000D61</color>
<color name="indigo_theme_secondary">#5B5D71</color>
<color name="indigo_theme_onSecondary">#FFFFFF</color>
<color name="indigo_theme_secondaryContainer">#E0E1FA</color>
<color name="indigo_theme_onSecondaryContainer">#171A2C</color>
<color name="indigo_theme_tertiary">#77536D</color>
<color name="indigo_theme_onTertiary">#FFFFFF</color>
<color name="indigo_theme_tertiaryContainer">#FFD7F3</color>
<color name="indigo_theme_onTertiaryContainer">#2D1228</color>
<color name="indigo_theme_error">#BA1B1B</color>
<color name="indigo_theme_errorContainer">#FFDAD4</color>
<color name="indigo_theme_onError">#FFFFFF</color>
<color name="indigo_theme_onErrorContainer">#410001</color>
<color name="indigo_theme_background">#FEFBFF</color>
<color name="indigo_theme_onBackground">#1B1B1F</color>
<color name="indigo_theme_surface">#FEFBFF</color>
<color name="indigo_theme_onSurface">#1B1B1F</color>
<color name="indigo_theme_surfaceVariant">#E3E1EC</color>
<color name="indigo_theme_onSurfaceVariant">#46464F</color>
<color name="indigo_theme_outline">#767680</color>
<color name="indigo_theme_inverseOnSurface">#F3F0F5</color>
<color name="indigo_theme_inverseSurface">#303034</color>
<color name="indigo_theme_primaryInverse">#B9C3FF</color>
<color name="indigo_theme_seed">#3F51B5</color>
<color name="blue_theme_primary">#0061A6</color>
<color name="blue_theme_onPrimary">#FFFFFF</color>
<color name="blue_theme_primaryContainer">#D0E4FF</color>
<color name="blue_theme_onPrimaryContainer">#001D36</color>
<color name="blue_theme_secondary">#535F70</color>
<color name="blue_theme_onSecondary">#FFFFFF</color>
<color name="blue_theme_secondaryContainer">#D6E3F7</color>
<color name="blue_theme_onSecondaryContainer">#101C2B</color>
<color name="blue_theme_tertiary">#6B5778</color>
<color name="blue_theme_onTertiary">#FFFFFF</color>
<color name="blue_theme_tertiaryContainer">#F3DAFF</color>
<color name="blue_theme_onTertiaryContainer">#251432</color>
<color name="blue_theme_error">#BA1B1B</color>
<color name="blue_theme_errorContainer">#FFDAD4</color>
<color name="blue_theme_onError">#FFFFFF</color>
<color name="blue_theme_onErrorContainer">#410001</color>
<color name="blue_theme_background">#FDFCFF</color>
<color name="blue_theme_onBackground">#1B1B1B</color>
<color name="blue_theme_surface">#FDFCFF</color>
<color name="blue_theme_onSurface">#1B1B1B</color>
<color name="blue_theme_surfaceVariant">#DFE2EB</color>
<color name="blue_theme_onSurfaceVariant">#42474E</color>
<color name="blue_theme_outline">#73777F</color>
<color name="blue_theme_inverseOnSurface">#F1F0F4</color>
<color name="blue_theme_inverseSurface">#2F3033</color>
<color name="blue_theme_primaryInverse">#9CCAFF</color>
<color name="blue_theme_seed">#2196F3</color>
<color name="light_blue_theme_primary">#006494</color>
<color name="light_blue_theme_onPrimary">#FFFFFF</color>
<color name="light_blue_theme_primaryContainer">#C8E6FF</color>
<color name="light_blue_theme_onPrimaryContainer">#001E31</color>
<color name="light_blue_theme_secondary">#50606E</color>
<color name="light_blue_theme_onSecondary">#FFFFFF</color>
<color name="light_blue_theme_secondaryContainer">#D3E4F5</color>
<color name="light_blue_theme_onSecondaryContainer">#0C1D29</color>
<color name="light_blue_theme_tertiary">#65597B</color>
<color name="light_blue_theme_onTertiary">#FFFFFF</color>
<color name="light_blue_theme_tertiaryContainer">#ECDCFF</color>
<color name="light_blue_theme_onTertiaryContainer">#201634</color>
<color name="light_blue_theme_error">#BA1B1B</color>
<color name="light_blue_theme_errorContainer">#FFDAD4</color>
<color name="light_blue_theme_onError">#FFFFFF</color>
<color name="light_blue_theme_onErrorContainer">#410001</color>
<color name="light_blue_theme_background">#FCFCFF</color>
<color name="light_blue_theme_onBackground">#1A1C1E</color>
<color name="light_blue_theme_surface">#FCFCFF</color>
<color name="light_blue_theme_onSurface">#1A1C1E</color>
<color name="light_blue_theme_surfaceVariant">#DEE3EA</color>
<color name="light_blue_theme_onSurfaceVariant">#41474D</color>
<color name="light_blue_theme_outline">#72787E</color>
<color name="light_blue_theme_inverseOnSurface">#F0F0F3</color>
<color name="light_blue_theme_inverseSurface">#2F3032</color>
<color name="light_blue_theme_primaryInverse">#8BCEFF</color>
<color name="light_blue_seed">#03A9F4</color>
<color name="cyan_theme_primary">#006877</color>
<color name="cyan_theme_onPrimary">#FFFFFF</color>
<color name="cyan_theme_primaryContainer">#9CEFFF</color>
<color name="cyan_theme_onPrimaryContainer">#001F25</color>
<color name="cyan_theme_secondary">#4A6267</color>
<color name="cyan_theme_onSecondary">#FFFFFF</color>
<color name="cyan_theme_secondaryContainer">#CDE7ED</color>
<color name="cyan_theme_onSecondaryContainer">#051F23</color>
<color name="cyan_theme_tertiary">#545D7D</color>
<color name="cyan_theme_onTertiary">#FFFFFF</color>
<color name="cyan_theme_tertiaryContainer">#DAE1FF</color>
<color name="cyan_theme_onTertiaryContainer">#101A37</color>
<color name="cyan_theme_error">#BA1B1B</color>
<color name="cyan_theme_errorContainer">#FFDAD4</color>
<color name="cyan_theme_onError">#FFFFFF</color>
<color name="cyan_theme_onErrorContainer">#410001</color>
<color name="cyan_theme_background">#FBFDFE</color>
<color name="cyan_theme_onBackground">#191C1D</color>
<color name="cyan_theme_surface">#FBFDFE</color>
<color name="cyan_theme_onSurface">#191C1D</color>
<color name="cyan_theme_surfaceVariant">#DBE4E6</color>
<color name="cyan_theme_onSurfaceVariant">#3F484A</color>
<color name="cyan_theme_outline">#70797B</color>
<color name="cyan_theme_inverseOnSurface">#EFF1F2</color>
<color name="cyan_theme_inverseSurface">#2D3132</color>
<color name="cyan_theme_primaryInverse">#44D8F1</color>
<color name="cyan_theme_seed">#00BCD4</color>
<color name="teal_theme_primary">#006A5F</color>
<color name="teal_theme_onPrimary">#FFFFFF</color>
<color name="teal_theme_primaryContainer">#74F7E5</color>
<color name="teal_theme_onPrimaryContainer">#00201C</color>
<color name="teal_theme_secondary">#4A635F</color>
<color name="teal_theme_onSecondary">#FFFFFF</color>
<color name="teal_theme_secondaryContainer">#CDE8E2</color>
<color name="teal_theme_onSecondaryContainer">#05201C</color>
<color name="teal_theme_tertiary">#466179</color>
<color name="teal_theme_onTertiary">#FFFFFF</color>
<color name="teal_theme_tertiaryContainer">#CBE5FF</color>
<color name="teal_theme_onTertiaryContainer">#001D31</color>
<color name="teal_theme_error">#BA1B1B</color>
<color name="teal_theme_errorContainer">#FFDAD4</color>
<color name="teal_theme_onError">#FFFFFF</color>
<color name="teal_theme_onErrorContainer">#410001</color>
<color name="teal_theme_background">#FAFDFA</color>
<color name="teal_theme_onBackground">#191C1B</color>
<color name="teal_theme_surface">#FAFDFA</color>
<color name="teal_theme_onSurface">#191C1B</color>
<color name="teal_theme_surfaceVariant">#DBE5E2</color>
<color name="teal_theme_onSurfaceVariant">#3F4947</color>
<color name="teal_theme_outline">#6E7976</color>
<color name="teal_theme_inverseOnSurface">#EFF1EF</color>
<color name="teal_theme_inverseSurface">#2D3130</color>
<color name="teal_theme_primaryInverse">#53DBC9</color>
<color name="teal_theme_seed">#009688</color>
<color name="green_theme_primary">#006E17</color>
<color name="green_theme_onPrimary">#FFFFFF</color>
<color name="green_theme_primaryContainer">#96F990</color>
<color name="green_theme_onPrimaryContainer">#002202</color>
<color name="green_theme_secondary">#52634E</color>
<color name="green_theme_onSecondary">#FFFFFF</color>
<color name="green_theme_secondaryContainer">#D5E8CE</color>
<color name="green_theme_onSecondaryContainer">#101F0F</color>
<color name="green_theme_tertiary">#38656A</color>
<color name="green_theme_onTertiary">#FFFFFF</color>
<color name="green_theme_tertiaryContainer">#BCEBF0</color>
<color name="green_theme_onTertiaryContainer">#011F22</color>
<color name="green_theme_error">#BA1B1B</color>
<color name="green_theme_errorContainer">#FFDAD4</color>
<color name="green_theme_onError">#FFFFFF</color>
<color name="green_theme_onErrorContainer">#410001</color>
<color name="green_theme_background">#FCFDF6</color>
<color name="green_theme_onBackground">#1A1C19</color>
<color name="green_theme_surface">#FCFDF6</color>
<color name="green_theme_onSurface">#1A1C19</color>
<color name="green_theme_surfaceVariant">#DEE4D8</color>
<color name="green_theme_onSurfaceVariant">#424840</color>
<color name="green_theme_outline">#73796F</color>
<color name="green_theme_inverseOnSurface">#F1F1EB</color>
<color name="green_theme_inverseSurface">#2F312D</color>
<color name="green_theme_primaryInverse">#7BDC77</color>
<color name="green_theme_seed">#4FAF50</color>
<color name="light_green_theme_primary">#006C46</color>
<color name="light_green_theme_onPrimary">#FFFFFF</color>
<color name="light_green_theme_primaryContainer">#8DF7C2</color>
<color name="light_green_theme_onPrimaryContainer">#002112</color>
<color name="light_green_theme_secondary">#4D6356</color>
<color name="light_green_theme_onSecondary">#FFFFFF</color>
<color name="light_green_theme_secondaryContainer">#D0E9D8</color>
<color name="light_green_theme_onSecondaryContainer">#0A2015</color>
<color name="light_green_theme_tertiary">#3D6473</color>
<color name="light_green_theme_onTertiary">#FFFFFF</color>
<color name="light_green_theme_tertiaryContainer">#C0E9FA</color>
<color name="light_green_theme_onTertiaryContainer">#001F29</color>
<color name="light_green_theme_error">#BA1B1B</color>
<color name="light_green_theme_errorContainer">#FFDAD4</color>
<color name="light_green_theme_onError">#FFFFFF</color>
<color name="light_green_theme_onErrorContainer">#410001</color>
<color name="light_green_theme_background">#FBFDF8</color>
<color name="light_green_theme_onBackground">#191C1A</color>
<color name="light_green_theme_surface">#FBFDF8</color>
<color name="light_green_theme_onSurface">#191C1A</color>
<color name="light_green_theme_surfaceVariant">#DCE5DD</color>
<color name="light_green_theme_onSurfaceVariant">#404943</color>
<color name="light_green_theme_outline">#707972</color>
<color name="light_green_theme_inverseOnSurface">#F0F1ED</color>
<color name="light_green_theme_inverseSurface">#2D312E</color>
<color name="light_green_theme_primaryInverse">#71DBA8</color>
<color name="light_green_theme_seed">#8BC3A4</color>
<color name="lime_theme_primary">#5A6400</color>
<color name="lime_theme_onPrimary">#FFFFFF</color>
<color name="lime_theme_primaryContainer">#DEED49</color>
<color name="lime_theme_onPrimaryContainer">#1A1E00</color>
<color name="lime_theme_secondary">#5E6044</color>
<color name="lime_theme_onSecondary">#FFFFFF</color>
<color name="lime_theme_secondaryContainer">#E4E5C1</color>
<color name="lime_theme_onSecondaryContainer">#1B1D07</color>
<color name="lime_theme_tertiary">#3C665A</color>
<color name="lime_theme_onTertiary">#FFFFFF</color>
<color name="lime_theme_tertiaryContainer">#BEECDC</color>
<color name="lime_theme_onTertiaryContainer">#002019</color>
<color name="lime_theme_error">#BA1B1B</color>
<color name="lime_theme_errorContainer">#FFDAD4</color>
<color name="lime_theme_onError">#FFFFFF</color>
<color name="lime_theme_onErrorContainer">#410001</color>
<color name="lime_theme_background">#FFFCF3</color>
<color name="lime_theme_onBackground">#1C1C17</color>
<color name="lime_theme_surface">#FFFCF3</color>
<color name="lime_theme_onSurface">#1C1C17</color>
<color name="lime_theme_surfaceVariant">#E5E3D2</color>
<color name="lime_theme_onSurfaceVariant">#47473B</color>
<color name="lime_theme_outline">#787869</color>
<color name="lime_theme_inverseOnSurface">#F3F0E8</color>
<color name="lime_theme_inverseSurface">#31312B</color>
<color name="lime_theme_primaryInverse">#C1D02C</color>
<color name="lime_theme_seed">#CDDC39</color>
<color name="yellow_theme_primary">#6A5F00</color>
<color name="yellow_theme_onPrimary">#FFFFFF</color>
<color name="yellow_theme_primaryContainer">#F9E534</color>
<color name="yellow_theme_onPrimaryContainer">#201C00</color>
<color name="yellow_theme_secondary">#645F41</color>
<color name="yellow_theme_onSecondary">#FFFFFF</color>
<color name="yellow_theme_secondaryContainer">#EBE3BD</color>
<color name="yellow_theme_onSecondaryContainer">#1F1C05</color>
<color name="yellow_theme_tertiary">#406652</color>
<color name="yellow_theme_onTertiary">#FFFFFF</color>
<color name="yellow_theme_tertiaryContainer">#C2ECD2</color>
<color name="yellow_theme_onTertiaryContainer">#002112</color>
<color name="yellow_theme_error">#BA1B1B</color>
<color name="yellow_theme_errorContainer">#FFDAD4</color>
<color name="yellow_theme_onError">#FFFFFF</color>
<color name="yellow_theme_onErrorContainer">#410001</color>
<color name="yellow_theme_background">#FFFBF7</color>
<color name="yellow_theme_onBackground">#1D1C16</color>
<color name="yellow_theme_surface">#FFFBF7</color>
<color name="yellow_theme_onSurface">#1D1C16</color>
<color name="yellow_theme_surfaceVariant">#E8E2D0</color>
<color name="yellow_theme_onSurfaceVariant">#4A473A</color>
<color name="yellow_theme_outline">#7B7768</color>
<color name="yellow_theme_inverseOnSurface">#F5F0E7</color>
<color name="yellow_theme_inverseSurface">#32302A</color>
<color name="yellow_theme_primaryInverse">#DBC808</color>
<color name="yellow_theme_seed">#FFEB3B</color>
<color name="amber_theme_primary">#795900</color>
<color name="amber_theme_onPrimary">#FFFFFF</color>
<color name="amber_theme_primaryContainer">#FFDF99</color>
<color name="amber_theme_onPrimaryContainer">#261A00</color>
<color name="amber_theme_secondary">#6B5C3F</color>
<color name="amber_theme_onSecondary">#FFFFFF</color>
<color name="amber_theme_secondaryContainer">#F4E0BB</color>
<color name="amber_theme_onSecondaryContainer">#241A04</color>
<color name="amber_theme_tertiary">#496546</color>
<color name="amber_theme_onTertiary">#FFFFFF</color>
<color name="amber_theme_tertiaryContainer">#CCEBC5</color>
<color name="amber_theme_onTertiaryContainer">#082009</color>
<color name="amber_theme_error">#BA1B1B</color>
<color name="amber_theme_errorContainer">#FFDAD4</color>
<color name="amber_theme_onError">#FFFFFF</color>
<color name="amber_theme_onErrorContainer">#410001</color>
<color name="amber_theme_background">#FFFBF8</color>
<color name="amber_theme_onBackground">#1E1B16</color>
<color name="amber_theme_surface">#FFFBF8</color>
<color name="amber_theme_onSurface">#1E1B16</color>
<color name="amber_theme_surfaceVariant">#EDE1CF</color>
<color name="amber_theme_onSurfaceVariant">#4D4639</color>
<color name="amber_theme_outline">#7F7667</color>
<color name="amber_theme_inverseOnSurface">#F8F0E7</color>
<color name="amber_theme_inverseSurface">#34302A</color>
<color name="amber_theme_primaryInverse">#FABD00</color>
<color name="amber_theme_seed">#FFC107</color>
<color name="orange_theme_primary">#8C5000</color>
<color name="orange_theme_onPrimary">#FFFFFF</color>
<color name="orange_theme_primaryContainer">#FFDCBB</color>
<color name="orange_theme_onPrimaryContainer">#2D1600</color>
<color name="orange_theme_secondary">#735A42</color>
<color name="orange_theme_onSecondary">#FFFFFF</color>
<color name="orange_theme_secondaryContainer">#FEDCBE</color>
<color name="orange_theme_onSecondaryContainer">#291806</color>
<color name="orange_theme_tertiary">#586339</color>
<color name="orange_theme_onTertiary">#FFFFFF</color>
<color name="orange_theme_tertiaryContainer">#DCE8B4</color>
<color name="orange_theme_onTertiaryContainer">#161E01</color>
<color name="orange_theme_error">#BA1B1B</color>
<color name="orange_theme_errorContainer">#FFDAD4</color>
<color name="orange_theme_onError">#FFFFFF</color>
<color name="orange_theme_onErrorContainer">#410001</color>
<color name="orange_theme_background">#FCFCFC</color>
<color name="orange_theme_onBackground">#1F1B17</color>
<color name="orange_theme_surface">#FCFCFC</color>
<color name="orange_theme_onSurface">#1F1B17</color>
<color name="orange_theme_surfaceVariant">#F2DFD1</color>
<color name="orange_theme_onSurfaceVariant">#51453A</color>
<color name="orange_theme_outline">#837569</color>
<color name="orange_theme_inverseOnSurface">#FAEFE7</color>
<color name="orange_theme_inverseSurface">#352F2A</color>
<color name="orange_theme_primaryInverse">#FFB86D</color>
<color name="orange_theme_seed">#FF9800</color>
<color name="deep_orange_theme_primary">#B22D00</color>
<color name="deep_orange_theme_onPrimary">#FFFFFF</color>
<color name="deep_orange_theme_primaryContainer">#FFDACF</color>
<color name="deep_orange_theme_onPrimaryContainer">#3C0800</color>
<color name="deep_orange_theme_secondary">#77574E</color>
<color name="deep_orange_theme_onSecondary">#FFFFFF</color>
<color name="deep_orange_theme_secondaryContainer">#FFDACF</color>
<color name="deep_orange_theme_onSecondaryContainer">#2C160F</color>
<color name="deep_orange_theme_tertiary">#6B5D2F</color>
<color name="deep_orange_theme_onTertiary">#FFFFFF</color>
<color name="deep_orange_theme_tertiaryContainer">#F5E1A6</color>
<color name="deep_orange_theme_onTertiaryContainer">#231B00</color>
<color name="deep_orange_theme_error">#BA1B1B</color>
<color name="deep_orange_theme_errorContainer">#FFDAD4</color>
<color name="deep_orange_theme_onError">#FFFFFF</color>
<color name="deep_orange_theme_onErrorContainer">#410001</color>
<color name="deep_orange_theme_background">#FCFCFC</color>
<color name="deep_orange_theme_onBackground">#201A18</color>
<color name="deep_orange_theme_surface">#FCFCFC</color>
<color name="deep_orange_theme_onSurface">#201A18</color>
<color name="deep_orange_theme_surfaceVariant">#F5DED8</color>
<color name="deep_orange_theme_onSurfaceVariant">#53433F</color>
<color name="deep_orange_theme_outline">#86736E</color>
<color name="deep_orange_theme_inverseOnSurface">#FBEEEB</color>
<color name="deep_orange_theme_inverseSurface">#362F2D</color>
<color name="deep_orange_theme_primaryInverse">#FFB49D</color>
<color name="deep_orange_seed">#FF5722</color>
<color name="brown_theme_primary">#9A4523</color>
<color name="brown_theme_onPrimary">#FFFFFF</color>
<color name="brown_theme_primaryContainer">#FFDBCD</color>
<color name="brown_theme_onPrimaryContainer">#380C00</color>
<color name="brown_theme_secondary">#77574C</color>
<color name="brown_theme_onSecondary">#FFFFFF</color>
<color name="brown_theme_secondaryContainer">#FFDBCD</color>
<color name="brown_theme_onSecondaryContainer">#2C160D</color>
<color name="brown_theme_tertiary">#695E2F</color>
<color name="brown_theme_onTertiary">#FFFFFF</color>
<color name="brown_theme_tertiaryContainer">#F1E2A7</color>
<color name="brown_theme_onTertiaryContainer">#221B00</color>
<color name="brown_theme_error">#BA1B1B</color>
<color name="brown_theme_errorContainer">#FFDAD4</color>
<color name="brown_theme_onError">#FFFFFF</color>
<color name="brown_theme_onErrorContainer">#410001</color>
<color name="brown_theme_background">#FCFCFC</color>
<color name="brown_theme_onBackground">#201A18</color>
<color name="brown_theme_surface">#FCFCFC</color>
<color name="brown_theme_onSurface">#201A18</color>
<color name="brown_theme_surfaceVariant">#F5DED6</color>
<color name="brown_theme_onSurfaceVariant">#52433E</color>
<color name="brown_theme_outline">#85736D</color>
<color name="brown_theme_inverseOnSurface">#FCEEEA</color>
<color name="brown_theme_inverseSurface">#362F2D</color>
<color name="brown_theme_primaryInverse">#FFB598</color>
<color name="brown_theme_seed">#795548</color>
<color name="blue_grey_theme_primary">#00668B</color>
<color name="blue_grey_theme_onPrimary">#FFFFFF</color>
<color name="blue_grey_theme_primaryContainer">#C2E8FF</color>
<color name="blue_grey_theme_onPrimaryContainer">#001E2C</color>
<color name="blue_grey_theme_secondary">#4E616D</color>
<color name="blue_grey_theme_onSecondary">#FFFFFF</color>
<color name="blue_grey_theme_secondaryContainer">#D1E5F3</color>
<color name="blue_grey_theme_onSecondaryContainer">#0A1E28</color>
<color name="blue_grey_theme_tertiary">#615A7D</color>
<color name="blue_grey_theme_onTertiary">#FFFFFF</color>
<color name="blue_grey_theme_tertiaryContainer">#E7DEFF</color>
<color name="blue_grey_theme_onTertiaryContainer">#1D1736</color>
<color name="blue_grey_theme_error">#BA1B1B</color>
<color name="blue_grey_theme_errorContainer">#FFDAD4</color>
<color name="blue_grey_theme_onError">#FFFFFF</color>
<color name="blue_grey_theme_onErrorContainer">#410001</color>
<color name="blue_grey_theme_background">#FBFCFF</color>
<color name="blue_grey_theme_onBackground">#191C1E</color>
<color name="blue_grey_theme_surface">#FBFCFF</color>
<color name="blue_grey_theme_onSurface">#191C1E</color>
<color name="blue_grey_theme_surfaceVariant">#DDE3E9</color>
<color name="blue_grey_theme_onSurfaceVariant">#41484D</color>
<color name="blue_grey_theme_outline">#71787D</color>
<color name="blue_grey_theme_inverseOnSurface">#F0F1F4</color>
<color name="blue_grey_theme_inverseSurface">#2E3133</color>
<color name="blue_grey_theme_primaryInverse">#79D0FF</color>
<color name="blue_grey_seed">#607D8F</color>
<color name="sakura_theme_primary">#9B404F</color>
<color name="sakura_theme_onPrimary">#FFFFFF</color>
<color name="sakura_theme_primaryContainer">#FFDADE</color>
<color name="sakura_theme_onPrimaryContainer">#400010</color>
<color name="sakura_theme_secondary">#765659</color>
<color name="sakura_theme_onSecondary">#FFFFFF</color>
<color name="sakura_theme_secondaryContainer">#FFD9DC</color>
<color name="sakura_theme_onSecondaryContainer">#2C1518</color>
<color name="sakura_theme_tertiary">#785931</color>
<color name="sakura_theme_onTertiary">#FFFFFF</color>
<color name="sakura_theme_tertiaryContainer">#FFDDB4</color>
<color name="sakura_theme_onTertiaryContainer">#2A1700</color>
<color name="sakura_theme_error">#BA1B1B</color>
<color name="sakura_theme_errorContainer">#FFDAD4</color>
<color name="sakura_theme_onError">#FFFFFF</color>
<color name="sakura_theme_onErrorContainer">#410001</color>
<color name="sakura_theme_background">#FCFCFC</color>
<color name="sakura_theme_onBackground">#201A1A</color>
<color name="sakura_theme_surface">#FCFCFC</color>
<color name="sakura_theme_onSurface">#201A1A</color>
<color name="sakura_theme_surfaceVariant">#F3DDDE</color>
<color name="sakura_theme_onSurfaceVariant">#524344</color>
<color name="sakura_theme_outline">#847374</color>
<color name="sakura_theme_inverseOnSurface">#FAEEEE</color>
<color name="sakura_theme_inverseSurface">#362F2F</color>
<color name="sakura_theme_primaryInverse">#FFB2BC</color>
<color name="sakura_theme_seed">#ff9ca8</color>
</resources> </resources>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="internal_fragment_insets">0x00800007</integer> <!-- start|end -->
<integer name="internal_fragment_top_insets">0x30</integer> <!-- top -->
<integer name="internal_fragment_bottom_insets">0</integer> <!-- null -->
</resources>

View File

@ -204,9 +204,9 @@
<string name="manager_crashed_info">report this to </string> <string name="manager_crashed_info">report this to </string>
<string name="send_crash_info">Send crash info</string> <string name="send_crash_info">Send crash info</string>
<string name="crash_info_copied">Crash info copied to clipboard</string> <string name="crash_info_copied">Crash info copied to clipboard</string>
<string name="info_copied">Copied to clipboard</string>
<!-- Colors --> <!-- Colors -->
<string name="color_pixel_blue">Pixel blue</string>
<string name="color_sakura">Sakura</string> <string name="color_sakura">Sakura</string>
<string name="color_red">Red</string> <string name="color_red">Red</string>
<string name="color_pink">Pink</string> <string name="color_pink">Pink</string>
@ -225,8 +225,8 @@
<string name="color_orange">Orange</string> <string name="color_orange">Orange</string>
<string name="color_deep_orange">Deep orange</string> <string name="color_deep_orange">Deep orange</string>
<string name="color_brown">Brown</string> <string name="color_brown">Brown</string>
<string name="color_grey">Grey</string>
<string name="color_blue_grey">Blue grey</string> <string name="color_blue_grey">Blue grey</string>
<string name="feedback_or_suggestion">Feedback or suggestion</string> <string name="feedback_or_suggestion">Feedback or suggestion</string>
<string name="sort_upgradable_first">Upgradable first</string> <string name="sort_upgradable_first">Upgradable first</string>
<string name="overview">Overview</string>
</resources> </resources>

View File

@ -20,5 +20,6 @@
<resources> <resources>
<string name="app_name" translatable="false">LSPosed</string> <string name="app_name" translatable="false">LSPosed</string>
<string name="about_source" translatable="false">https://github.com/LSPosed/LSPosed/</string> <string name="about_source" translatable="false">https://github.com/LSPosed/LSPosed/</string>
<string name="install_url" translatable="false">https://github.com/LSPosed/LSPosed#install</string>
<string name="settings_group_repo" translatable="false">@string/module_repo</string> <string name="settings_group_repo" translatable="false">@string/module_repo</string>
</resources> </resources>

View File

@ -79,27 +79,6 @@
<item name="android:paddingBottom">24dp</item> <item name="android:paddingBottom">24dp</item>
</style> </style>
<style name="HomeCard" parent="Widget.Material3.CardView.Elevated">
<item name="android:stateListAnimator">@null</item>
<item name="android:layout_marginHorizontal">16dp</item>
<item name="android:layout_marginBottom">8dp</item>
<item name="android:clickable">true</item>
<item name="android:focusable">true</item>
<item name="cardPreventCornerOverlap">false</item>
</style>
<style name="HomeCard.Primary">
<item name="android:layout_marginTop">16dp</item>
<item name="cardElevation">@dimen/home_primary_elevation</item>
</style>
<style name="HomeCard.Secondary" />
<style name="HomeCard.Tertiary">
<item name="cardBackgroundColor">@android:color/transparent</item>
<item name="cardElevation">0dp</item>
</style>
<style name="Widget.App.Button.OutlinedButton.IconOnly" parent="Widget.Material3.Button.OutlinedButton"> <style name="Widget.App.Button.OutlinedButton.IconOnly" parent="Widget.Material3.Button.OutlinedButton">
<item name="iconPadding">0dp</item> <item name="iconPadding">0dp</item>
<item name="android:paddingLeft">@dimen/mtrl_btn_icon_btn_padding_left</item> <item name="android:paddingLeft">@dimen/mtrl_btn_icon_btn_padding_left</item>

View File

@ -19,87 +19,554 @@
<resources> <resources>
<style name="ThemeOverlay.color_primary">
<item name="colorPrimary">@color/color_primary</item>
</style>
<style name="ThemeOverlay.material_red"> <style name="ThemeOverlay.material_red">
<item name="colorPrimary">@color/material_red</item> <item name="colorPrimary">@color/red_theme_primary</item>
<item name="colorOnPrimary">@color/red_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/red_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/red_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/red_theme_secondary</item>
<item name="colorOnSecondary">@color/red_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/red_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/red_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/red_theme_tertiary</item>
<item name="colorOnTertiary">@color/red_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/red_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/red_theme_onTertiaryContainer</item>
<item name="colorError">@color/red_theme_error</item>
<item name="colorErrorContainer">@color/red_theme_errorContainer</item>
<item name="colorOnError">@color/red_theme_onError</item>
<item name="colorOnErrorContainer">@color/red_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/red_theme_background</item>
<item name="colorOnBackground">@color/red_theme_onBackground</item>
<item name="colorSurface">@color/red_theme_surface</item>
<item name="colorOnSurface">@color/red_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/red_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/red_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/red_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/red_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/red_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/red_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_pink"> <style name="ThemeOverlay.material_pink">
<item name="colorPrimary">@color/material_pink</item> <item name="colorPrimary">@color/pink_theme_primary</item>
<item name="colorOnPrimary">@color/pink_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/pink_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/pink_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/pink_theme_secondary</item>
<item name="colorOnSecondary">@color/pink_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/pink_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/pink_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/pink_theme_tertiary</item>
<item name="colorOnTertiary">@color/pink_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/pink_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/pink_theme_onTertiaryContainer</item>
<item name="colorError">@color/pink_theme_error</item>
<item name="colorErrorContainer">@color/pink_theme_errorContainer</item>
<item name="colorOnError">@color/pink_theme_onError</item>
<item name="colorOnErrorContainer">@color/pink_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/pink_theme_background</item>
<item name="colorOnBackground">@color/pink_theme_onBackground</item>
<item name="colorSurface">@color/pink_theme_surface</item>
<item name="colorOnSurface">@color/pink_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/pink_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/pink_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/pink_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/pink_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/pink_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/pink_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_purple"> <style name="ThemeOverlay.material_purple">
<item name="colorPrimary">@color/material_purple</item> <item name="colorPrimary">@color/purple_theme_primary</item>
<item name="colorOnPrimary">@color/purple_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/purple_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/purple_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/purple_theme_secondary</item>
<item name="colorOnSecondary">@color/purple_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/purple_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/purple_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/purple_theme_tertiary</item>
<item name="colorOnTertiary">@color/purple_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/purple_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/purple_theme_onTertiaryContainer</item>
<item name="colorError">@color/purple_theme_error</item>
<item name="colorErrorContainer">@color/purple_theme_errorContainer</item>
<item name="colorOnError">@color/purple_theme_onError</item>
<item name="colorOnErrorContainer">@color/purple_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/purple_theme_background</item>
<item name="colorOnBackground">@color/purple_theme_onBackground</item>
<item name="colorSurface">@color/purple_theme_surface</item>
<item name="colorOnSurface">@color/purple_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/purple_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/purple_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/purple_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/purple_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/purple_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/purple_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_deep_purple"> <style name="ThemeOverlay.material_deep_purple">
<item name="colorPrimary">@color/material_deep_purple</item> <item name="colorPrimary">@color/deep_purple_theme_primary</item>
<item name="colorOnPrimary">@color/deep_purple_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/deep_purple_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/deep_purple_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/deep_purple_theme_secondary</item>
<item name="colorOnSecondary">@color/deep_purple_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/deep_purple_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/deep_purple_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/deep_purple_theme_tertiary</item>
<item name="colorOnTertiary">@color/deep_purple_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/deep_purple_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/deep_purple_theme_onTertiaryContainer</item>
<item name="colorError">@color/deep_purple_theme_error</item>
<item name="colorErrorContainer">@color/deep_purple_theme_errorContainer</item>
<item name="colorOnError">@color/deep_purple_theme_onError</item>
<item name="colorOnErrorContainer">@color/deep_purple_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/deep_purple_theme_background</item>
<item name="colorOnBackground">@color/deep_purple_theme_onBackground</item>
<item name="colorSurface">@color/deep_purple_theme_surface</item>
<item name="colorOnSurface">@color/deep_purple_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/deep_purple_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/deep_purple_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/deep_purple_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/deep_purple_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/deep_purple_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/deep_purple_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_indigo"> <style name="ThemeOverlay.material_indigo">
<item name="colorPrimary">@color/material_indigo</item> <item name="colorPrimary">@color/indigo_theme_primary</item>
<item name="colorOnPrimary">@color/indigo_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/indigo_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/indigo_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/indigo_theme_secondary</item>
<item name="colorOnSecondary">@color/indigo_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/indigo_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/indigo_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/indigo_theme_tertiary</item>
<item name="colorOnTertiary">@color/indigo_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/indigo_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/indigo_theme_onTertiaryContainer</item>
<item name="colorError">@color/indigo_theme_error</item>
<item name="colorErrorContainer">@color/indigo_theme_errorContainer</item>
<item name="colorOnError">@color/indigo_theme_onError</item>
<item name="colorOnErrorContainer">@color/indigo_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/indigo_theme_background</item>
<item name="colorOnBackground">@color/indigo_theme_onBackground</item>
<item name="colorSurface">@color/indigo_theme_surface</item>
<item name="colorOnSurface">@color/indigo_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/indigo_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/indigo_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/indigo_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/indigo_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/indigo_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/indigo_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_blue"> <style name="ThemeOverlay.material_blue">
<item name="colorPrimary">@color/material_blue</item> <item name="colorPrimary">@color/blue_theme_primary</item>
<item name="colorOnPrimary">@color/blue_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/blue_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/blue_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/blue_theme_secondary</item>
<item name="colorOnSecondary">@color/blue_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/blue_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/blue_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/blue_theme_tertiary</item>
<item name="colorOnTertiary">@color/blue_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/blue_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/blue_theme_onTertiaryContainer</item>
<item name="colorError">@color/blue_theme_error</item>
<item name="colorErrorContainer">@color/blue_theme_errorContainer</item>
<item name="colorOnError">@color/blue_theme_onError</item>
<item name="colorOnErrorContainer">@color/blue_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/blue_theme_background</item>
<item name="colorOnBackground">@color/blue_theme_onBackground</item>
<item name="colorSurface">@color/blue_theme_surface</item>
<item name="colorOnSurface">@color/blue_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/blue_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/blue_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/blue_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/blue_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/blue_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/blue_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_light_blue"> <style name="ThemeOverlay.material_light_blue">
<item name="colorPrimary">@color/material_light_blue</item> <item name="colorPrimary">@color/light_blue_theme_primary</item>
<item name="colorOnPrimary">@color/light_blue_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/light_blue_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/light_blue_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/light_blue_theme_secondary</item>
<item name="colorOnSecondary">@color/light_blue_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/light_blue_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/light_blue_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/light_blue_theme_tertiary</item>
<item name="colorOnTertiary">@color/light_blue_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/light_blue_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/light_blue_theme_onTertiaryContainer</item>
<item name="colorError">@color/light_blue_theme_error</item>
<item name="colorErrorContainer">@color/light_blue_theme_errorContainer</item>
<item name="colorOnError">@color/light_blue_theme_onError</item>
<item name="colorOnErrorContainer">@color/light_blue_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/light_blue_theme_background</item>
<item name="colorOnBackground">@color/light_blue_theme_onBackground</item>
<item name="colorSurface">@color/light_blue_theme_surface</item>
<item name="colorOnSurface">@color/light_blue_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/light_blue_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/light_blue_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/light_blue_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/light_blue_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/light_blue_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/light_blue_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_cyan"> <style name="ThemeOverlay.material_cyan">
<item name="colorPrimary">@color/material_cyan</item> <item name="colorPrimary">@color/cyan_theme_primary</item>
<item name="colorOnPrimary">@color/cyan_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/cyan_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/cyan_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/cyan_theme_secondary</item>
<item name="colorOnSecondary">@color/cyan_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/cyan_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/cyan_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/cyan_theme_tertiary</item>
<item name="colorOnTertiary">@color/cyan_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/cyan_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/cyan_theme_onTertiaryContainer</item>
<item name="colorError">@color/cyan_theme_error</item>
<item name="colorErrorContainer">@color/cyan_theme_errorContainer</item>
<item name="colorOnError">@color/cyan_theme_onError</item>
<item name="colorOnErrorContainer">@color/cyan_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/cyan_theme_background</item>
<item name="colorOnBackground">@color/cyan_theme_onBackground</item>
<item name="colorSurface">@color/cyan_theme_surface</item>
<item name="colorOnSurface">@color/cyan_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/cyan_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/cyan_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/cyan_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/cyan_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/cyan_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/cyan_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_teal"> <style name="ThemeOverlay.material_teal">
<item name="colorPrimary">@color/material_teal</item> <item name="colorPrimary">@color/teal_theme_primary</item>
<item name="colorOnPrimary">@color/teal_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/teal_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/teal_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/teal_theme_secondary</item>
<item name="colorOnSecondary">@color/teal_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/teal_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/teal_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/teal_theme_tertiary</item>
<item name="colorOnTertiary">@color/teal_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/teal_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/teal_theme_onTertiaryContainer</item>
<item name="colorError">@color/teal_theme_error</item>
<item name="colorErrorContainer">@color/teal_theme_errorContainer</item>
<item name="colorOnError">@color/teal_theme_onError</item>
<item name="colorOnErrorContainer">@color/teal_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/teal_theme_background</item>
<item name="colorOnBackground">@color/teal_theme_onBackground</item>
<item name="colorSurface">@color/teal_theme_surface</item>
<item name="colorOnSurface">@color/teal_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/teal_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/teal_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/teal_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/teal_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/teal_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/teal_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_green"> <style name="ThemeOverlay.material_green">
<item name="colorPrimary">@color/material_green</item> <item name="colorPrimary">@color/green_theme_primary</item>
<item name="colorOnPrimary">@color/green_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/green_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/green_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/green_theme_secondary</item>
<item name="colorOnSecondary">@color/green_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/green_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/green_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/green_theme_tertiary</item>
<item name="colorOnTertiary">@color/green_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/green_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/green_theme_onTertiaryContainer</item>
<item name="colorError">@color/green_theme_error</item>
<item name="colorErrorContainer">@color/green_theme_errorContainer</item>
<item name="colorOnError">@color/green_theme_onError</item>
<item name="colorOnErrorContainer">@color/green_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/green_theme_background</item>
<item name="colorOnBackground">@color/green_theme_onBackground</item>
<item name="colorSurface">@color/green_theme_surface</item>
<item name="colorOnSurface">@color/green_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/green_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/green_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/green_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/green_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/green_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/green_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_light_green"> <style name="ThemeOverlay.material_light_green">
<item name="colorPrimary">@color/material_light_green</item> <item name="colorPrimary">@color/light_green_theme_primary</item>
<item name="colorOnPrimary">@color/light_green_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/light_green_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/light_green_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/light_green_theme_secondary</item>
<item name="colorOnSecondary">@color/light_green_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/light_green_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/light_green_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/light_green_theme_tertiary</item>
<item name="colorOnTertiary">@color/light_green_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/light_green_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/light_green_theme_onTertiaryContainer</item>
<item name="colorError">@color/light_green_theme_error</item>
<item name="colorErrorContainer">@color/light_green_theme_errorContainer</item>
<item name="colorOnError">@color/light_green_theme_onError</item>
<item name="colorOnErrorContainer">@color/light_green_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/light_green_theme_background</item>
<item name="colorOnBackground">@color/light_green_theme_onBackground</item>
<item name="colorSurface">@color/light_green_theme_surface</item>
<item name="colorOnSurface">@color/light_green_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/light_green_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/light_green_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/light_green_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/light_green_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/light_green_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/light_green_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_lime"> <style name="ThemeOverlay.material_lime">
<item name="colorPrimary">@color/material_lime</item> <item name="colorPrimary">@color/lime_theme_primary</item>
<item name="colorOnPrimary">@color/lime_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/lime_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/lime_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/lime_theme_secondary</item>
<item name="colorOnSecondary">@color/lime_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/lime_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/lime_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/lime_theme_tertiary</item>
<item name="colorOnTertiary">@color/lime_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/lime_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/lime_theme_onTertiaryContainer</item>
<item name="colorError">@color/lime_theme_error</item>
<item name="colorErrorContainer">@color/lime_theme_errorContainer</item>
<item name="colorOnError">@color/lime_theme_onError</item>
<item name="colorOnErrorContainer">@color/lime_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/lime_theme_background</item>
<item name="colorOnBackground">@color/lime_theme_onBackground</item>
<item name="colorSurface">@color/lime_theme_surface</item>
<item name="colorOnSurface">@color/lime_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/lime_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/lime_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/lime_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/lime_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/lime_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/lime_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_yellow"> <style name="ThemeOverlay.material_yellow">
<item name="colorPrimary">@color/material_yellow</item> <item name="colorPrimary">@color/yellow_theme_primary</item>
<item name="colorOnPrimary">@color/yellow_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/yellow_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/yellow_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/yellow_theme_secondary</item>
<item name="colorOnSecondary">@color/yellow_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/yellow_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/yellow_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/yellow_theme_tertiary</item>
<item name="colorOnTertiary">@color/yellow_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/yellow_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/yellow_theme_onTertiaryContainer</item>
<item name="colorError">@color/yellow_theme_error</item>
<item name="colorErrorContainer">@color/yellow_theme_errorContainer</item>
<item name="colorOnError">@color/yellow_theme_onError</item>
<item name="colorOnErrorContainer">@color/yellow_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/yellow_theme_background</item>
<item name="colorOnBackground">@color/yellow_theme_onBackground</item>
<item name="colorSurface">@color/yellow_theme_surface</item>
<item name="colorOnSurface">@color/yellow_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/yellow_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/yellow_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/yellow_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/yellow_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/yellow_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/yellow_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_amber"> <style name="ThemeOverlay.material_amber">
<item name="colorPrimary">@color/material_amber</item> <item name="colorPrimary">@color/amber_theme_primary</item>
<item name="colorOnPrimary">@color/amber_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/amber_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/amber_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/amber_theme_secondary</item>
<item name="colorOnSecondary">@color/amber_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/amber_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/amber_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/amber_theme_tertiary</item>
<item name="colorOnTertiary">@color/amber_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/amber_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/amber_theme_onTertiaryContainer</item>
<item name="colorError">@color/amber_theme_error</item>
<item name="colorErrorContainer">@color/amber_theme_errorContainer</item>
<item name="colorOnError">@color/amber_theme_onError</item>
<item name="colorOnErrorContainer">@color/amber_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/amber_theme_background</item>
<item name="colorOnBackground">@color/amber_theme_onBackground</item>
<item name="colorSurface">@color/amber_theme_surface</item>
<item name="colorOnSurface">@color/amber_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/amber_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/amber_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/amber_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/amber_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/amber_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/amber_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_orange"> <style name="ThemeOverlay.material_orange">
<item name="colorPrimary">@color/material_orange</item> <item name="colorPrimary">@color/orange_theme_primary</item>
<item name="colorOnPrimary">@color/orange_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/orange_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/orange_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/orange_theme_secondary</item>
<item name="colorOnSecondary">@color/orange_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/orange_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/orange_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/orange_theme_tertiary</item>
<item name="colorOnTertiary">@color/orange_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/orange_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/orange_theme_onTertiaryContainer</item>
<item name="colorError">@color/orange_theme_error</item>
<item name="colorErrorContainer">@color/orange_theme_errorContainer</item>
<item name="colorOnError">@color/orange_theme_onError</item>
<item name="colorOnErrorContainer">@color/orange_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/orange_theme_background</item>
<item name="colorOnBackground">@color/orange_theme_onBackground</item>
<item name="colorSurface">@color/orange_theme_surface</item>
<item name="colorOnSurface">@color/orange_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/orange_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/orange_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/orange_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/orange_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/orange_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/orange_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_deep_orange"> <style name="ThemeOverlay.material_deep_orange">
<item name="colorPrimary">@color/material_deep_orange</item> <item name="colorPrimary">@color/deep_orange_theme_primary</item>
<item name="colorOnPrimary">@color/deep_orange_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/deep_orange_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/deep_orange_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/deep_orange_theme_secondary</item>
<item name="colorOnSecondary">@color/deep_orange_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/deep_orange_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/deep_orange_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/deep_orange_theme_tertiary</item>
<item name="colorOnTertiary">@color/deep_orange_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/deep_orange_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/deep_orange_theme_onTertiaryContainer</item>
<item name="colorError">@color/deep_orange_theme_error</item>
<item name="colorErrorContainer">@color/deep_orange_theme_errorContainer</item>
<item name="colorOnError">@color/deep_orange_theme_onError</item>
<item name="colorOnErrorContainer">@color/deep_orange_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/deep_orange_theme_background</item>
<item name="colorOnBackground">@color/deep_orange_theme_onBackground</item>
<item name="colorSurface">@color/deep_orange_theme_surface</item>
<item name="colorOnSurface">@color/deep_orange_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/deep_orange_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/deep_orange_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/deep_orange_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/deep_orange_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/deep_orange_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/deep_orange_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_brown"> <style name="ThemeOverlay.material_brown">
<item name="colorPrimary">@color/material_brown</item> <item name="colorPrimary">@color/brown_theme_primary</item>
</style> <item name="colorOnPrimary">@color/brown_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/brown_theme_primaryContainer</item>
<style name="ThemeOverlay.material_grey"> <item name="colorOnPrimaryContainer">@color/brown_theme_onPrimaryContainer</item>
<item name="colorPrimary">@color/material_grey</item> <item name="colorSecondary">@color/brown_theme_secondary</item>
<item name="colorOnSecondary">@color/brown_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/brown_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/brown_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/brown_theme_tertiary</item>
<item name="colorOnTertiary">@color/brown_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/brown_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/brown_theme_onTertiaryContainer</item>
<item name="colorError">@color/brown_theme_error</item>
<item name="colorErrorContainer">@color/brown_theme_errorContainer</item>
<item name="colorOnError">@color/brown_theme_onError</item>
<item name="colorOnErrorContainer">@color/brown_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/brown_theme_background</item>
<item name="colorOnBackground">@color/brown_theme_onBackground</item>
<item name="colorSurface">@color/brown_theme_surface</item>
<item name="colorOnSurface">@color/brown_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/brown_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/brown_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/brown_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/brown_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/brown_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/brown_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.material_blue_grey"> <style name="ThemeOverlay.material_blue_grey">
<item name="colorPrimary">@color/material_blue_grey</item> <item name="colorPrimary">@color/blue_grey_theme_primary</item>
<item name="colorOnPrimary">@color/blue_grey_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/blue_grey_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/blue_grey_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/blue_grey_theme_secondary</item>
<item name="colorOnSecondary">@color/blue_grey_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/blue_grey_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/blue_grey_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/blue_grey_theme_tertiary</item>
<item name="colorOnTertiary">@color/blue_grey_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/blue_grey_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/blue_grey_theme_onTertiaryContainer</item>
<item name="colorError">@color/blue_grey_theme_error</item>
<item name="colorErrorContainer">@color/blue_grey_theme_errorContainer</item>
<item name="colorOnError">@color/blue_grey_theme_onError</item>
<item name="colorOnErrorContainer">@color/blue_grey_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/blue_grey_theme_background</item>
<item name="colorOnBackground">@color/blue_grey_theme_onBackground</item>
<item name="colorSurface">@color/blue_grey_theme_surface</item>
<item name="colorOnSurface">@color/blue_grey_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/blue_grey_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/blue_grey_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/blue_grey_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/blue_grey_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/blue_grey_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/blue_grey_theme_primaryInverse</item>
</style> </style>
<style name="ThemeOverlay.sakura"> <style name="ThemeOverlay.sakura">
<item name="colorPrimary">@color/sakura</item> <item name="colorPrimary">@color/sakura_theme_primary</item>
<item name="colorOnPrimary">@color/sakura_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/sakura_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/sakura_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/sakura_theme_secondary</item>
<item name="colorOnSecondary">@color/sakura_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/sakura_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/sakura_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/sakura_theme_tertiary</item>
<item name="colorOnTertiary">@color/sakura_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/sakura_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/sakura_theme_onTertiaryContainer</item>
<item name="colorError">@color/sakura_theme_error</item>
<item name="colorErrorContainer">@color/sakura_theme_errorContainer</item>
<item name="colorOnError">@color/sakura_theme_onError</item>
<item name="colorOnErrorContainer">@color/sakura_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/sakura_theme_background</item>
<item name="colorOnBackground">@color/sakura_theme_onBackground</item>
<item name="colorSurface">@color/sakura_theme_surface</item>
<item name="colorOnSurface">@color/sakura_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/sakura_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/sakura_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/sakura_theme_outline</item>
<item name="colorOnSurfaceInverse">@color/sakura_theme_inverseOnSurface</item>
<item name="colorSurfaceInverse">@color/sakura_theme_inverseSurface</item>
<item name="colorPrimaryInverse">@color/sakura_theme_primaryInverse</item>
</style> </style>
</resources> </resources>

View File

@ -53,6 +53,13 @@
<item name="android:letterSpacing">0.0178571429</item> <item name="android:letterSpacing">0.0178571429</item>
</style> </style>
<style name="Preference.Category.Material" tools:override="true">
<item name="android:layout">@layout/preference_category_material</item>
<item name="iconSpaceReserved">@bool/config_materialPreferenceIconSpaceReserved</item>
<item name="allowDividerAbove">false</item>
<item name="allowDividerBelow">false</item>
</style>
<style name="PreferenceCategoryTitleTextStyle" tools:override="true"> <style name="PreferenceCategoryTitleTextStyle" tools:override="true">
<item name="android:fontFamily">sans-serif-medium</item> <item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textAllCaps">true</item> <item name="android:textAllCaps">true</item>
@ -76,7 +83,7 @@
<item name="colorWarning">@color/material_orange_700</item> <item name="colorWarning">@color/material_orange_700</item>
<item name="colorInactive" tools:ignore="PrivateResource">@color/material_grey_600</item> <item name="colorInactive" tools:ignore="PrivateResource">@color/material_grey_600</item>
<item name="navigationBarDividerColor">@color/navigation_bar_divider_light</item> <item name="navigationBarDividerColor">@android:color/transparent</item>
<!-- SwitchBar --> <!-- SwitchBar -->
<item name="switchBarStyle">@style/Widget.SwitchBar.Light</item> <item name="switchBarStyle">@style/Widget.SwitchBar.Light</item>
@ -99,7 +106,7 @@
<item name="colorWarning">@color/material_orange_A100</item> <item name="colorWarning">@color/material_orange_A100</item>
<item name="colorInactive">@color/material_grey_500</item> <item name="colorInactive">@color/material_grey_500</item>
<item name="navigationBarDividerColor">@color/navigation_bar_divider_dark</item> <item name="navigationBarDividerColor">@android:color/transparent</item>
<!-- SwitchBar --> <!-- SwitchBar -->
<item name="switchBarStyle">@style/Widget.SwitchBar</item> <item name="switchBarStyle">@style/Widget.SwitchBar</item>

View File

@ -56,7 +56,7 @@
android:title="@string/theme_color_system" android:title="@string/theme_color_system"
app:isPreferenceVisible="false" /> app:isPreferenceVisible="false" />
<rikka.preference.SimpleMenuPreference <rikka.preference.SimpleMenuPreference
android:defaultValue="COLOR_PRIMARY" android:defaultValue="COLOR_BLUE"
android:entries="@array/color_texts" android:entries="@array/color_texts"
android:entryValues="@array/color_values" android:entryValues="@array/color_values"
android:icon="@drawable/ic_outline_palette_24" android:icon="@drawable/ic_outline_palette_24"

View File

@ -57,7 +57,7 @@
android:title="@string/theme_color_system" android:title="@string/theme_color_system"
app:isPreferenceVisible="false" /> app:isPreferenceVisible="false" />
<rikka.preference.SimpleMenuPreference <rikka.preference.SimpleMenuPreference
android:defaultValue="COLOR_PRIMARY" android:defaultValue="COLOR_BLUE"
android:entries="@array/color_texts" android:entries="@array/color_texts"
android:entryValues="@array/color_values" android:entryValues="@array/color_values"
android:icon="@drawable/ic_outline_palette_24" android:icon="@drawable/ic_outline_palette_24"

View File

@ -42,6 +42,7 @@ import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager; import android.content.pm.ShortcutManager;
import android.content.pm.VersionedPackage; import android.content.pm.VersionedPackage;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.Icon; import android.graphics.drawable.Icon;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
@ -236,7 +237,7 @@ public class LSPManagerService extends ILSPManagerService.Stub {
.setContentTitle(title) .setContentTitle(title)
.setContentText(content) .setContentText(content)
.setSmallIcon(android.R.drawable.ic_dialog_info) .setSmallIcon(android.R.drawable.ic_dialog_info)
.setColor(context.getResources().getColor(R.color.color_primary)) .setColor(Color.BLUE)
.setContentIntent(getNotificationIntent(modulePackageName, moduleUserId)) .setContentIntent(getNotificationIntent(modulePackageName, moduleUserId))
.setAutoCancel(true) .setAutoCancel(true)
.setStyle(style) .setStyle(style)

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ LSPosed is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with LSPosed. If not, see <https://www.gnu.org/licenses/>.
~
~ Copyright (C) 2021 LSPosed Contributors
-->
<resources>
<color name="color_primary_light">#1A73E8</color>
<color name="color_primary_dark">#8AB4F8</color>
<color name="color_primary">@color/color_primary_light</color>
</resources>