[app] Update home design (#1080)

This commit is contained in:
tehcneko 2021-09-08 17:43:41 +08:00 committed by GitHub
parent 6ff8f50562
commit b49aa00df5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 331 additions and 237 deletions

View File

@ -22,10 +22,8 @@ package org.lsposed.manager.ui.dialog;
import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.core.text.HtmlCompat;
import org.lsposed.manager.BuildConfig;
import org.lsposed.manager.ConfigManager;
@ -40,10 +38,16 @@ public class InfoDialogBuilder extends BlurBehindDialogBuilder {
public InfoDialogBuilder(@NonNull Context context) {
super(context);
setTitle(R.string.info);
DialogInfoBinding binding = DialogInfoBinding.inflate(LayoutInflater.from(context), null, false);
binding.apiVersion.setText(String.valueOf(ConfigManager.getXposedApiVersion()));
binding.frameworkVersion.setText(String.format(Locale.US, "%s (%s)", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
if (ConfigManager.isBinderAlive()) {
binding.apiVersion.setText(String.valueOf(ConfigManager.getXposedApiVersion()));
binding.frameworkVersion.setText(String.format(Locale.US, "%s (%s)", ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
} else {
binding.apiVersion.setText(R.string.not_installed);
binding.frameworkVersion.setText(R.string.not_installed);
}
binding.managerVersion.setText(String.format(Locale.US, "%s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
if (Build.VERSION.PREVIEW_SDK_INT != 0) {
@ -55,17 +59,6 @@ public class InfoDialogBuilder extends BlurBehindDialogBuilder {
binding.device.setText(getDevice());
binding.systemAbi.setText(Build.SUPPORTED_ABIS[0]);
if (!ConfigManager.isSepolicyLoaded()) {
binding.note.setVisibility(View.VISIBLE);
binding.note.setText(HtmlCompat.fromHtml(context.getString(R.string.selinux_policy_not_loaded), HtmlCompat.FROM_HTML_MODE_LEGACY));
} else if (!ConfigManager.systemServerRequested()) {
binding.note.setVisibility(View.VISIBLE);
binding.note.setText(HtmlCompat.fromHtml(context.getString(R.string.system_inject_fail), HtmlCompat.FROM_HTML_MODE_LEGACY));
} else if (!ConfigManager.dex2oatFlagsLoaded()) {
binding.note.setVisibility(View.VISIBLE);
binding.note.setText(HtmlCompat.fromHtml(context.getString(R.string.system_prop_incorrect), HtmlCompat.FROM_HTML_MODE_LEGACY));
}
setView(binding.getRoot());
setPositiveButton(android.R.string.ok, null);

View File

@ -0,0 +1,71 @@
/*
* 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.Activity;
import android.content.Context;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.core.text.HtmlCompat;
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 BlurBehindDialogBuilder {
public WarningDialogBuilder(@NonNull Context context) {
super(context);
Activity activity = (Activity) context;
setTitle(R.string.partial_activated);
LayoutInflater inflater = LayoutInflater.from(context);
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));
}
setView(binding.getRoot());
setPositiveButton(android.R.string.ok, null);
}
}

View File

@ -19,10 +19,13 @@
package org.lsposed.manager.ui.fragment;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@ -37,9 +40,9 @@ import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R;
import org.lsposed.manager.databinding.DialogAboutBinding;
import org.lsposed.manager.databinding.FragmentHomeBinding;
import org.lsposed.manager.ui.activity.base.BaseActivity;
import org.lsposed.manager.ui.dialog.BlurBehindDialogBuilder;
import org.lsposed.manager.ui.dialog.InfoDialogBuilder;
import org.lsposed.manager.ui.dialog.WarningDialogBuilder;
import org.lsposed.manager.util.ModuleUtil;
import org.lsposed.manager.util.NavUtil;
import org.lsposed.manager.util.chrome.LinkTransformationMethod;
@ -56,22 +59,18 @@ public class HomeFragment extends BaseFragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false);
setupToolbar(binding.toolbar, R.string.app_name);
setupToolbar(binding.toolbar, getString(R.string.app_name), R.menu.menu_home);
binding.toolbar.setNavigationIcon(null);
binding.nestedScrollView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setRaised(!top));
return binding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
BaseActivity activity = (BaseActivity) requireActivity();
boolean isBinderAlive = ConfigManager.isBinderAlive();
boolean needUpdate = App.needUpdate();
Activity activity = requireActivity();
binding.status.setOnClickListener(v -> {
if (isBinderAlive && !needUpdate) {
new InfoDialogBuilder(activity).setTitle(R.string.info).show();
if (ConfigManager.isBinderAlive() && !App.needUpdate()) {
if (!ConfigManager.isSepolicyLoaded() || !ConfigManager.systemServerRequested() || !ConfigManager.dex2oatFlagsLoaded()) {
new WarningDialogBuilder(activity).show();
} else {
new InfoDialogBuilder(activity).setTitle(R.string.info).show();
}
} else {
NavUtil.startURL(activity, getString(R.string.about_source));
}
@ -80,51 +79,74 @@ public class HomeFragment extends BaseFragment {
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.about.setOnClickListener(v -> {
binding.issue.setOnClickListener(view -> NavUtil.startURL(activity, "https://github.com/LSPosed/LSPosed/issues"));
updateStates(requireActivity(), ConfigManager.isBinderAlive(), App.needUpdate());
return binding.getRoot();
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_refresh) {
updateStates(requireActivity(), ConfigManager.isBinderAlive(), App.needUpdate());
} else if (itemId == R.id.menu_info) {
new InfoDialogBuilder(requireActivity()).setTitle(R.string.info).show();
} else if (itemId == R.id.menu_about) {
Activity activity = requireActivity();
DialogAboutBinding binding = DialogAboutBinding.inflate(LayoutInflater.from(requireActivity()), null, false);
binding.sourceCode.setMovementMethod(LinkMovementMethod.getInstance());
binding.sourceCode.setTransformationMethod(new LinkTransformationMethod(activity));
binding.sourceCode.setText(HtmlCompat.fromHtml(getString(
binding.designAboutTitle.setText(R.string.app_name);
binding.designAboutInfo.setMovementMethod(LinkMovementMethod.getInstance());
binding.designAboutInfo.setTransformationMethod(new LinkTransformationMethod(activity));
SpannableStringBuilder sb = new SpannableStringBuilder(HtmlCompat.fromHtml(getString(
R.string.about_view_source_code,
"<b><a href=\"https://github.com/LSPosed/LSPosed\">GitHub</a></b>",
"<b><a href=\"https://t.me/LSPosed\">Telegram</a></b>"), HtmlCompat.FROM_HTML_MODE_LEGACY));
binding.translators.setMovementMethod(LinkMovementMethod.getInstance());
binding.translators.setTransformationMethod(new LinkTransformationMethod(activity));
binding.translators.setText(HtmlCompat.fromHtml(getString(R.string.about_translators, getString(R.string.translators)), HtmlCompat.FROM_HTML_MODE_LEGACY));
binding.version.setText(String.format(Locale.US, "LSPosed %s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
sb.append("\n\n");
sb.append(HtmlCompat.fromHtml(getString(R.string.about_translators, getString(R.string.translators)), HtmlCompat.FROM_HTML_MODE_LEGACY));
binding.designAboutInfo.setText(sb);
binding.designAboutVersion.setText(String.format(Locale.US, "%s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
new BlurBehindDialogBuilder(activity)
.setView(binding.getRoot())
.show();
});
}
return super.onOptionsItemSelected(item);
}
private void updateStates(Activity activity, boolean binderAlive, boolean needUpdate) {
int cardBackgroundColor;
if (isBinderAlive) {
if (!ConfigManager.isSepolicyLoaded()) {
binding.statusTitle.setText(R.string.partial_activated);
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), rikka.material.R.attr.colorWarning);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.selinux_policy_not_loaded_summary);
} else if (!ConfigManager.systemServerRequested()) {
binding.statusTitle.setText(R.string.partial_activated);
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), rikka.material.R.attr.colorWarning);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.system_inject_fail_summary);
} else if (!ConfigManager.dex2oatFlagsLoaded()) {
binding.statusTitle.setText(R.string.partial_activated);
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), rikka.material.R.attr.colorWarning);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.system_prop_incorrect_summary);
} else if (needUpdate) {
if (binderAlive) {
StringBuilder sb = new StringBuilder(String.format(Locale.US, "%s (%d)",
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
if (needUpdate) {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorInstall);
binding.statusTitle.setText(R.string.need_update);
binding.statusIcon.setImageResource(R.drawable.ic_round_update_24);
sb.append("\n\n");
sb.append(getString(R.string.please_update_summary));
} else if (!ConfigManager.isSepolicyLoaded() || !ConfigManager.systemServerRequested() || !ConfigManager.dex2oatFlagsLoaded()) {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), rikka.material.R.attr.colorWarning);
binding.statusIcon.setImageResource(R.drawable.ic_warning);
binding.statusSummary.setText(R.string.please_update_summary);
binding.statusTitle.setText(R.string.partial_activated);
binding.statusIcon.setImageResource(R.drawable.ic_round_warning_24);
sb.append("\n");
if (!ConfigManager.isSepolicyLoaded()) {
sb.append("\n");
sb.append(getString(R.string.selinux_policy_not_loaded_summary));
}
if (!ConfigManager.systemServerRequested()) {
sb.append("\n");
sb.append(getString(R.string.system_inject_fail_summary));
}
if (!ConfigManager.dex2oatFlagsLoaded()) {
sb.append("\n");
sb.append(getString(R.string.system_prop_incorrect_summary));
}
} else {
binding.statusTitle.setText(R.string.activated);
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorNormal);
binding.statusIcon.setImageResource(R.drawable.ic_check_circle);
binding.statusSummary.setText(String.format(Locale.ROOT, "%s (%d)",
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode()));
binding.statusTitle.setText(R.string.activated);
binding.statusIcon.setImageResource(R.drawable.ic_round_check_circle_24);
}
binding.statusSummary.setText(sb.toString());
} else {
cardBackgroundColor = ResourceUtils.resolveColor(activity.getTheme(), R.attr.colorInstall);
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
@ -134,7 +156,7 @@ public class HomeFragment extends BaseFragment {
binding.status.setOnClickListener(null);
binding.download.setVisibility(View.GONE);
}
binding.statusIcon.setImageResource(R.drawable.ic_error);
binding.statusIcon.setImageResource(R.drawable.ic_round_error_outline_24);
Snackbar.make(binding.snackbar, R.string.lsposed_not_active, Snackbar.LENGTH_INDEFINITE).show();
}
binding.status.setCardBackgroundColor(cardBackgroundColor);

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="@color/material_blue_500"
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,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,1s-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,-1zM13,17L8,17c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h5c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM16,13L8,13c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h8c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM16,9L8,9c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h8c0.55,0 1,0.45 1,1s-0.45,1 -1,1z"/>
</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,8h-1.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96l0.93,-0.93c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0l-1.47,1.47C12.96,5.06 12.49,5 12,5s-0.96,0.06 -1.41,0.17L9.11,3.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l0.92,0.93C7.88,6.55 7.26,7.22 6.81,8L5,8c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L5,12c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1v1c0,0.34 0.04,0.67 0.09,1L5,16c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h1.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L19,18c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h1c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1h-1v-1c0,-0.34 -0.04,-0.67 -0.09,-1L19,10c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1zM13,16h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM13,12h-2c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h2c0.55,0 1,0.45 1,1s-0.45,1 -1,1z"/>
</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,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM9.29,16.29L5.7,12.7c-0.39,-0.39 -0.39,-1.02 0,-1.41 0.39,-0.39 1.02,-0.39 1.41,0L10,14.17l6.88,-6.88c0.39,-0.39 1.02,-0.39 1.41,0 0.39,0.39 0.39,1.02 0,1.41l-7.59,7.59c-0.38,0.39 -1.02,0.39 -1.41,0z"/>
</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,7c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1s-1,-0.45 -1,-1L11,8c0,-0.55 0.45,-1 1,-1zM11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM13,17h-2v-2h2v2z"/>
</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.98s-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.12,-0.22 -0.39,-0.3 -0.61,-0.22l-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.23,-0.09 -0.49,0 -0.61,0.22l-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.98s0.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.12,0.22 0.39,0.3 0.61,0.22l2.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.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
</vector>

View File

@ -14,17 +14,16 @@
~ 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">
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM16.59,7.58L10,14.17l-2.59,-2.58L6,13l4,4 8,-8z" />
android:pathData="M11,8.75v3.68c0,0.35 0.19,0.68 0.49,0.86l3.12,1.85c0.36,0.21 0.82,0.09 1.03,-0.26c0.21,-0.36 0.1,-0.82 -0.26,-1.03l-2.87,-1.71v-3.4C12.5,8.34 12.16,8 11.75,8S11,8.34 11,8.75zM21,9.5V4.21c0,-0.45 -0.54,-0.67 -0.85,-0.35l-1.78,1.78c-1.81,-1.81 -4.39,-2.85 -7.21,-2.6c-4.19,0.38 -7.64,3.75 -8.1,7.94C2.46,16.4 6.69,21 12,21c4.59,0 8.38,-3.44 8.93,-7.88c0.07,-0.6 -0.4,-1.12 -1,-1.12c-0.5,0 -0.92,0.37 -0.98,0.86c-0.43,3.49 -3.44,6.19 -7.05,6.14c-3.71,-0.05 -6.84,-3.18 -6.9,-6.9C4.94,8.2 8.11,5 12,5c1.93,0 3.68,0.79 4.95,2.05l-2.09,2.09C14.54,9.46 14.76,10 15.21,10h5.29C20.78,10 21,9.78 21,9.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="M4.47,21h15.06c1.54,0 2.5,-1.67 1.73,-3L13.73,4.99c-0.77,-1.33 -2.69,-1.33 -3.46,0L2.74,18c-0.77,1.33 0.19,3 1.73,3zM12,14c-0.55,0 -1,-0.45 -1,-1v-2c0,-0.55 0.45,-1 1,-1s1,0.45 1,1v2c0,0.55 -0.45,1 -1,1zM13,18h-2v-2h2v2z"/>
</vector>

View File

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

View File

@ -51,7 +51,7 @@
android:layout_height="128dp"
android:layout_centerHorizontal="true"
android:layout_margin="8dp"
app:srcCompat="@drawable/ic_warning"
app:srcCompat="@drawable/ic_round_warning_24"
tools:ignore="ContentDescription" />
<TextView

View File

@ -17,38 +17,46 @@
~ Copyright (C) 2020 EdXposed Contributors
~ Copyright (C) 2021 LSPosed Contributors
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="?android:dialogPreferredPadding"
android:paddingVertical="?android:dialogPreferredPadding">
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="24dp">
<TextView
android:id="@+id/version"
<ImageView
android:id="@+id/design_about_icon"
android:layout_width="48dp"
android:layout_height="48dp"
app:srcCompat="@drawable/ic_launcher" />
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
tools:text="@tools:sample/lorem" />
android:layout_marginStart="16dp">
<TextView
android:id="@+id/source_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
tools:text="@string/about_view_source_code" />
<TextView
android:id="@+id/design_about_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textAppearance="@android:style/TextAppearance.Material.Body1" />
<TextView
android:id="@+id/translators"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="?android:textColorSecondary"
android:textSize="14sp"
tools:text="@string/about_translators" />
<TextView
android:id="@+id/design_about_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp" />
<TextView
android:id="@+id/design_about_info"
android:layout_marginTop="24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="?android:textColorSecondary" />
</LinearLayout>
</LinearLayout>

View File

@ -104,12 +104,5 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:visibility="gone" />
</LinearLayout>
</rikka.widget.borderview.BorderNestedScrollView>

View File

@ -14,17 +14,23 @@
~ 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
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<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="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z" />
</vector>
<TextView
style="@style/DeviceInfoDialogLabel"
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
style="@style/DeviceInfoDialogValue"
android:id="@+id/value"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

View File

@ -1,4 +1,4 @@
<!--
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
@ -14,17 +14,20 @@
~ 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="M11,7h2v2h-2zM11,11h2v6h-2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z" />
</vector>
<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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="?dialogPreferredPadding"
android:paddingTop="?dialogPreferredPadding">
</LinearLayout>
</rikka.widget.borderview.BorderNestedScrollView>

View File

@ -90,7 +90,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
app:srcCompat="@drawable/ic_check_circle"
app:srcCompat="@drawable/ic_round_check_circle_24"
app:tint="?android:attr/textColorPrimaryInverse" />
<TextView
@ -204,7 +204,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@string/Logs"
app:srcCompat="@drawable/ic_assignment" />
app:srcCompat="@drawable/ic_round_assignment_24" />
<TextView
android:layout_width="wrap_content"
@ -225,7 +225,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@string/Settings"
app:srcCompat="@drawable/ic_settings" />
app:srcCompat="@drawable/ic_round_settings_24" />
<TextView
android:layout_width="wrap_content"
@ -236,7 +236,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/about"
android:id="@+id/issue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/HomeItem.Tertiary">
@ -244,14 +244,14 @@
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@string/About"
app:srcCompat="@drawable/ic_info" />
android:contentDescription="@string/report_issue"
app:srcCompat="@drawable/ic_round_bug_report_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/About"
android:text="@string/report_issue"
android:textSize="16sp"
android:textAppearance="?android:attr/textAppearanceListItem" />
</LinearLayout>

View File

@ -1,36 +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
-->
<!-- Adding the same root's ID for view binding as other layout configurations -->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:consumeSystemWindowsInsets="start|end"
app:edgeToEdge="true"
app:fitsSystemWindowsInsets="start|end">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/snackbar"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/fragment_home" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,4 +1,4 @@
<!--
<?xml version="1.0" encoding="utf-8"?><!--
~ This file is part of LSPosed.
~
~ LSPosed is free software: you can redistribute it and/or modify
@ -18,13 +18,16 @@
~ 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="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
</vector>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_refresh"
android:title="@string/refresh" />
<item
android:id="@+id/menu_info"
android:title="@string/info" />
<item
android:id="@+id/menu_about"
android:title="@string/About" />
</menu>

View File

@ -38,7 +38,7 @@
<string name="activated">Activado</string>
<string name="partial_activated">Parcialmente activado</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy no está cargado correctamente</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>WARNING:</b> SEPolicy no está cargado correctamente. Los módulos de hooks del framework del sistema no funcionarán.<br>Por favor, reporta esto al desarrollador <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy no está cargado correctamente. Los módulos de hooks del framework del sistema no funcionarán.<br>Por favor, reporta esto al desarrollador <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>.]]></string>
<string name="lsposed_not_active">LSPosed no está instalado o activado actualmente.</string>
<string name="info_api_version">Versión de la API</string>
<string name="info_framework_version">Versión del framework</string>

View File

@ -38,9 +38,9 @@
<string name="selinux_policy_not_loaded_summary">SEPolicy n\est pas chargé correctement</string>
<string name="selinux_policy_not_loaded"><![CDATA[&lt;b&gt;AVERTISSEMENT:&lt;\/b&gt; SEPolicy n\est pas chargé correctement, les modules qui modifient le sous-système ne fonctionneront pas.]]></string>
<string name="system_inject_fail_summary">Échec de l\injection du sous système</string>
<string name="system_inject_fail"><![CDATA[<b>AVERTISSEMENT:</b> Échec de l\injection du sous système.<br/>Ceci est rare et peut être causé par <b>Magisk</b> ou certains modules Magisk de basse qualité.<br/>Éssayez de désactiver les modules Magisk autres que Riru et LSPosed ou envoyez le journal complet aux développeurs.]]></string>
<string name="system_inject_fail"><![CDATA[Échec de l\injection du sous système.<br/>Ceci est rare et peut être causé par <b>Magisk</b> ou certains modules Magisk de basse qualité.<br/>Éssayez de désactiver les modules Magisk autres que Riru et LSPosed ou envoyez le journal complet aux développeurs.]]></string>
<string name="system_prop_incorrect_summary">Propriétés système incorrectes</string>
<string name="system_prop_incorrect"><![CDATA[<b>AVERTISSEMENT:</b> Propriétés système incorrectes.<br/>Certaines propriétés nécessaires au système ont été supprimées ou modifiées.<br/>Les modules peuvent s\'invalider occasionnellement.]]></string>
<string name="system_prop_incorrect"><![CDATA[Propriétés système incorrectes.<br/>Certaines propriétés nécessaires au système ont été supprimées ou modifiées.<br/>Les modules peuvent s\'invalider occasionnellement.]]></string>
<string name="need_update">Mise à jour nécessaire</string>
<string name="please_update_summary">Merci d\installer la dernière version de LSPosed</string>
<string name="lsposed_not_active">LSPosed n\est actuellement pas installé ou activé.</string>

View File

@ -31,7 +31,7 @@
<string name="activated">הופעל</string>
<string name="partial_activated">הופעל חלקית</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy לא נטען כמו שצריך</string>
<string name="selinux_policy_not_loaded"><![CDATA[&lt;b&gt;אזהרה:&lt;\/b&gt; SEPolicy לא טעון כמו שצריך, מודולים שמתחברים ל-System Framework לא יעבדו.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy לא טעון כמו שצריך, מודולים שמתחברים ל-System Framework לא יעבדו.]]></string>
<string name="lsposed_not_active">LSPosed כרגע לא מותקן או מופעל.</string>
<string name="info_api_version">גרסת API</string>
<string name="info_framework_version">גרסת Framework</string>

View File

@ -37,11 +37,11 @@
<string name="activated">有効化済</string>
<string name="partial_activated">部分的に有効化済</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy が正しく読み込まれていません</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>警告:</b> SEPolicy が正しく読み込まれておらず、システムフレームワークをフックするためのモジュールが動作しません。<br/>本障害について<a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 開発者に報告して下さい。]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy が正しく読み込まれておらず、システムフレームワークをフックするためのモジュールが動作しません。<br/>本障害について<a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 開発者に報告して下さい。]]></string>
<string name="system_inject_fail_summary">システムフレームワークへのパッチに失敗しました</string>
<string name="system_inject_fail"><![CDATA[<b>警告:</b> システムフレームワークへのパッチに失敗しました。<br/>本現象はごく稀に発生し、<b>Magisk</b> もしくは低品質な Magisk モジュールが起因で発生します。<br/>Riru, LSPosed 以外の Magiskモジュールの一時無効化の試行 または 開発者へフルログを提出して下さい。]]></string>
<string name="system_inject_fail"><![CDATA[システムフレームワークへのパッチに失敗しました。<br/>本現象はごく稀に発生し、<b>Magisk</b> もしくは低品質な Magisk モジュールが起因で発生します。<br/>Riru, LSPosed 以外の Magiskモジュールの一時無効化の試行 または 開発者へフルログを提出して下さい。]]></string>
<string name="system_prop_incorrect_summary">誤ったシステム設定</string>
<string name="system_prop_incorrect"><![CDATA[<b>警告:</b> システム設定に誤りがあります。<br/>幾つかの必須システム設定が削除もしくは変更されています。<br/>モジュールが無効化される場合があります。]]></string>
<string name="system_prop_incorrect"><![CDATA[システム設定に誤りがあります。<br/>幾つかの必須システム設定が削除もしくは変更されています。<br/>モジュールが無効化される場合があります。]]></string>
<string name="need_update">アップデート要</string>
<string name="please_update_summary">最新バージョンの LSPosed をインストールして下さい</string>
<string name="lsposed_not_active">LSPosed が未インストールもしくは有効化されていません。</string>

View File

@ -36,9 +36,9 @@
<string name="activated">활성화됨</string>
<string name="partial_activated">부분적으로 활성화됨</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy가 제대로 로드되지 않았습니다.</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>주의:</b> SEPolicy가 제대로 로드되지 않아 시스템 프레임워크를 후크하는 모듈이 작동하지 않습니다.<br><a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 개발자에게 보고하십시오.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy가 제대로 로드되지 않아 시스템 프레임워크를 후크하는 모듈이 작동하지 않습니다.<br><a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 개발자에게 보고하십시오.]]></string>
<string name="system_inject_fail_summary">System Framework 주입 실패</string>
<string name="system_inject_fail"><![CDATA[<b>주의:</b> System Framework 주입 실패.<br/>이는 드물게 발생하며, Magisk 또는 일부 저품질 <b>Magisk</b> 모듈 때문일 수 있습니다.<br/>Riru 및 LSPosed 이외의 Magisk 모듈을 비활성화하거나 전체 로그를 개발자에게 제출하십시오.]]></string>
<string name="system_inject_fail"><![CDATA[System Framework 주입 실패.<br/>이는 드물게 발생하며, Magisk 또는 일부 저품질 <b>Magisk</b> 모듈 때문일 수 있습니다.<br/>Riru 및 LSPosed 이외의 Magisk 모듈을 비활성화하거나 전체 로그를 개발자에게 제출하십시오.]]></string>
<string name="lsposed_not_active">LSPosed가 현재 설치되어 있지 않거나 활성화되어 있지 않습니다.</string>
<string name="info_api_version">API 버전</string>
<string name="info_framework_version">Framework 버전</string>

View File

@ -39,7 +39,7 @@
<string name="selinux_policy_not_loaded_summary">SEPolicy is niet correct geladen</string>
<string name="selinux_policy_not_loaded"><![CDATA[&lt;b&gt;WAARSCHUWING:&lt;\/b&gt; SEPolicy is niet correct geladen, modules die System Framework haken zullen niet werken.]]></string>
<string name="system_inject_fail_summary">Systeem Framework injectie is mislukt</string>
<string name="system_inject_fail"><![CDATA[<b>WAARSCHUWING:</b> Systeem Framework injectie mislukt.<br/>Dit is zeldzaam en kan worden veroorzaakt door <b>Magisk</b> of sommige Magisk-modules van lage kwaliteit.<br/>Probeer andere Magisk-modules dan Riru en LSPosed uit te schakelen of stuur een volledig logboek naar de ontwikkelaars.]]></string>
<string name="system_inject_fail"><![CDATA[Systeem Framework injectie mislukt.<br/>Dit is zeldzaam en kan worden veroorzaakt door <b>Magisk</b> of sommige Magisk-modules van lage kwaliteit.<br/>Probeer andere Magisk-modules dan Riru en LSPosed uit te schakelen of stuur een volledig logboek naar de ontwikkelaars.]]></string>
<string name="lsposed_not_active">LSPosed is momenteel niet geïnstalleerd of actief.</string>
<string name="info_api_version">API versie</string>
<string name="info_framework_version">Framework versie</string>

View File

@ -37,11 +37,11 @@
<string name="activated">Ativado</string>
<string name="partial_activated">Parcialmente ativado</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy não está carregado corretamente</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>AVISO:</b> SEPolicy não está carregado corretamente, módulos que aplicam hooks do Framework do Sistema não funcionarão.<br/>Por favor, relate isso para o desenvolvedor do <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy não está carregado corretamente, módulos que aplicam hooks do Framework do Sistema não funcionarão.<br/>Por favor, relate isso para o desenvolvedor do <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>.]]></string>
<string name="system_inject_fail_summary">A injeção do Framework do Sistema falhou</string>
<string name="system_inject_fail"><![CDATA[<b>AVISO:</b> Falha na injeção do Framework do Sistema<br/>Isso é raro e pode ter sido causado pelo <b>Magisk</b> ou por algum módulo do Magisk de baixa qualidade.<br/>Por favor, tente desabilitar os módulos do Magisk que não sejam o Riru e o LSPosed ou envie o log completo para os desenvolvedores.]]></string>
<string name="system_inject_fail"><![CDATA[Falha na injeção do Framework do Sistema<br/>Isso é raro e pode ter sido causado pelo <b>Magisk</b> ou por algum módulo do Magisk de baixa qualidade.<br/>Por favor, tente desabilitar os módulos do Magisk que não sejam o Riru e o LSPosed ou envie o log completo para os desenvolvedores.]]></string>
<string name="system_prop_incorrect_summary">Propriedade do sistema incorreta</string>
<string name="system_prop_incorrect"><![CDATA[<b>AVISO:</b> Propriedade do sistema incorreta.<br/>Algumas propriedades do sistema necessárias foram excluídas ou modificadas.<br/>Algum módulo pode ser invalidado ocasionalmente.]]></string>
<string name="system_prop_incorrect"><![CDATA[Propriedade do sistema incorreta.<br/>Algumas propriedades do sistema necessárias foram excluídas ou modificadas.<br/>Algum módulo pode ser invalidado ocasionalmente.]]></string>
<string name="need_update">Necessário atualizar</string>
<string name="please_update_summary">Por favor, instale a versão mais recente do LSPosed</string>
<string name="lsposed_not_active">O módulo do LSPosed não está instalado ou está desativado.</string>

View File

@ -40,11 +40,11 @@
<string name="activated">Активирован</string>
<string name="partial_activated">Частично активирован</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy не загружен должным образом</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>ВНИМАНИЕ:</b> SEPolicy не загружается должным образом, модули которым нужен системный фреймворк, не будут работать.<br/>Пожалуйста, сообщите об этом сюда <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> разработчик.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy не загружается должным образом, модули которым нужен системный фреймворк, не будут работать.<br/>Пожалуйста, сообщите об этом сюда <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> разработчик.]]></string>
<string name="system_inject_fail_summary">Ошибка внедрения системного фреймворка</string>
<string name="system_inject_fail"><![CDATA[<b>ВНИМАНИЕ:</b> Ошибка внедрения системного фреймворка.<br/>Это редкость и может быть вызвано <b>Magisk</b> или несовместимыми модулями Magisk.<br/>Пожалуйста, попрорбуйте отключить модули Magisk кроме Riru и LSPosed или пришлите полные логи разработчику.]]></string>
<string name="system_inject_fail"><![CDATA[Ошибка внедрения системного фреймворка.<br/>Это редкость и может быть вызвано <b>Magisk</b> или несовместимыми модулями Magisk.<br/>Пожалуйста, попрорбуйте отключить модули Magisk кроме Riru и LSPosed или пришлите полные логи разработчику.]]></string>
<string name="system_prop_incorrect_summary">Не правильные системные настройки</string>
<string name="system_prop_incorrect"><![CDATA[<b>ВНИМАНИЕ:</b> Не правильные системные настройки.<br/>Некоторые системные настройки нужные для работы удалены или изменены.<br/>Модули могут не работать должным образом.]]></string>
<string name="system_prop_incorrect"><![CDATA[Не правильные системные настройки.<br/>Некоторые системные настройки нужные для работы удалены или изменены.<br/>Модули могут не работать должным образом.]]></string>
<string name="need_update">Требуется обновление</string>
<string name="please_update_summary">Установите последнюю версию LSPosed!</string>
<string name="lsposed_not_active">LSPosed не установлен или не активирован!</string>

View File

@ -38,11 +38,11 @@
<string name="activated">Aktif edildi</string>
<string name="partial_activated">Kısmen etkinleştirildi</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy düzgün yüklenmemiş</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>WARNING:</b> SEPolicy düzgün yüklenmemiş, System Framework\'u bağlayan modüller çalışmayacaktır.<br/>Lütfen bunu rapor edin <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy düzgün yüklenmemiş, System Framework\'u bağlayan modüller çalışmayacaktır.<br/>Lütfen bunu rapor edin <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="system_inject_fail_summary">Sistem Çerçevesi enjeksiyonu başarısız oldu</string>
<string name="system_inject_fail"><![CDATA[<b>WARNING:</b> Sistem Çerçevesi enjekte başarısız oldu.<br/>Bu nadirdir ve neden olabilir <b>Magisk</b> Bazı düşük kaliteli magisk modülleri <br/>Lütfen Riru ve Lsposed dışındaki Magisk modüllerini devre dışı bırakmayı deneyin veya geliştiricilere tam günlüğü gönderin.]]></string>
<string name="system_inject_fail"><![CDATA[Sistem Çerçevesi enjekte başarısız oldu.<br/>Bu nadirdir ve neden olabilir <b>Magisk</b> Bazı düşük kaliteli magisk modülleri <br/>Lütfen Riru ve Lsposed dışındaki Magisk modüllerini devre dışı bırakmayı deneyin veya geliştiricilere tam günlüğü gönderin.]]></string>
<string name="system_prop_incorrect_summary">Sistem desteği yanlış</string>
<string name="system_prop_incorrect"><![CDATA[<b>WARNING:</b> Sistem desteği yanlış.<br/>Bazı gerekli sistem özellikleri silindi veya değiştirildi.<br/>Modüller zaman geçersiz olabilir.]]></string>
<string name="system_prop_incorrect"><![CDATA[Sistem desteği yanlış.<br/>Bazı gerekli sistem özellikleri silindi veya değiştirildi.<br/>Modüller zaman geçersiz olabilir.]]></string>
<string name="need_update">güncelleme gerekiyor</string>
<string name="please_update_summary">Lütfen Lsposed\'in en son sürümünü yükleyin</string>
<string name="lsposed_not_active">Lsposed şu anda yüklü veya etkin değil.</string>

View File

@ -43,11 +43,11 @@
<string name="activated">已激活</string>
<string name="partial_activated">部分激活</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy 未被正确加载</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>警告:</b>SEPolicy 未被正确加载,作用于系统框架的模块将不起作用。<br/>请将此报告给 <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 开发者。]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[作用于系统框架的模块将不起作用。<br/>请将此报告给 <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> 开发者。]]></string>
<string name="system_inject_fail_summary">系统框架注入失败</string>
<string name="system_inject_fail"><![CDATA[<b>警告:</b>系统注入失败。<br/>这是极罕见的情况,可能是由 <b>Magisk</b> 或低质 Magisk 模块导致。<br/>请尝试禁用除 Riru 和 LSPosed 外的 Magisk 模块,或向开发者提供完整日志。]]></string>
<string name="system_inject_fail"><![CDATA[这是极罕见的情况,可能是由 <b>Magisk</b> 或低质 Magisk 模块导致。<br/>请尝试禁用除 Riru 和 LSPosed 外的 Magisk 模块,或向开发者提供完整日志。]]></string>
<string name="system_prop_incorrect_summary">系统属性异常</string>
<string name="system_prop_incorrect"><![CDATA[<b>警告:</b>系统属性异常。<br/>一些必须的系统属性被删除或被修改。<br/>模块可能会随机失效。]]></string>
<string name="system_prop_incorrect"><![CDATA[一些必须的系统属性被删除或被修改。<br/>模块可能会随机失效。]]></string>
<string name="need_update">需要更新</string>
<string name="please_update_summary">请安装新版 LSPosed</string>
<string name="lsposed_not_active">LSPosed 未安装或未激活</string>

View File

@ -40,7 +40,7 @@
<string name="activated">Activated</string>
<string name="partial_activated">Partially activated</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy is not loaded properly</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>WARNING:</b> SEPolicy is not loaded properly, modules that hook System Framework will not work.<br>Please report this to <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy is not loaded properly, modules that hook System Framework will not work.<br>Please report this to <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="lsposed_not_active">LSPosed 未安裝或未啟動</string>
<string name="info_api_version">API version</string>
<string name="info_framework_version">Framework version</string>

View File

@ -40,11 +40,11 @@
<string name="activated">已啟用</string>
<string name="partial_activated">部分啟用</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy 未被正確讀取</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>警告:</b>SEPolicy 沒有被正確讀取,掛鉤系統框架的模組將無法運作。<br/>請回報這類問題給<a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>開發者]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[SEPolicy 沒有被正確讀取,掛鉤系統框架的模組將無法運作。<br/>請回報這類問題給<a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a>開發者]]></string>
<string name="system_inject_fail_summary">系統框架注入失敗</string>
<string name="system_inject_fail"><![CDATA[<b>警告:</b>系統注入失敗。<br/>這是極罕見的情況,可能是由 <b>Magisk</b> 或低品質 Magisk 模組導致。<br/>請嘗試禁用除 Riru 和 LSPosed 以外的 Magisk 模組,或向開發者提供完整日誌。]]></string>
<string name="system_inject_fail"><![CDATA[或低品質 Magisk 模組導致。<br/>請嘗試禁用除 Riru 和 LSPosed 以外的 Magisk 模組,或向開發者提供完整日誌。]]></string>
<string name="system_prop_incorrect_summary">系統屬性異常</string>
<string name="system_prop_incorrect"><![CDATA[<b>警告:</b>系統屬性異常。<br/>一些必須的系統屬性被刪除或被修改。<br/>模組可能會隨機失效。]]></string>
<string name="system_prop_incorrect"><![CDATA[系統屬性異常。<br/>一些必須的系統屬性被刪除或被修改。<br/>模組可能會隨機失效。]]></string>
<string name="need_update">需要更新</string>
<string name="please_update_summary">請安裝新版 LSPosed</string>
<string name="lsposed_not_active">LSPosed 未正確安裝或啟用。</string>

View File

@ -29,6 +29,7 @@
<string name="Logs">Logs</string>
<string name="Settings">Settings</string>
<string name="About">About</string>
<string name="report_issue">Report issue</string>
<string name="module_repo">Repository</string>
<string name="module_repo_summary">Module repository (Beta)</string>
<string name="about_view_source_code"><![CDATA[View source code at %1$s<br/>Join our %2$s channel]]></string>
@ -42,11 +43,11 @@
<string name="activated">Activated</string>
<string name="partial_activated">Partially activated</string>
<string name="selinux_policy_not_loaded_summary">SEPolicy is not loaded properly</string>
<string name="selinux_policy_not_loaded"><![CDATA[<b>WARNING:</b> SEPolicy is not loaded properly, modules that hook System Framework will not work.<br/>Please report this to <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="selinux_policy_not_loaded"><![CDATA[Modules that hook System Framework will not work.<br/>Please report this to <a href="https://github.com/topjohnwu/Magisk/issues"><b>Magisk</b></a> developer.]]></string>
<string name="system_inject_fail_summary">System Framework injection failed</string>
<string name="system_inject_fail"><![CDATA[<b>WARNING:</b> System Framework inject failed.<br/>This is rare and may be caused by <b>Magisk</b> or some low-quality Magisk modules.<br/>Please try to disable Magisk modules other than Riru and LSPosed or submit full log to developers.]]></string>
<string name="system_inject_fail"><![CDATA[This is rare and may be caused by <b>Magisk</b> or some low-quality Magisk modules.<br/>Please try to disable Magisk modules other than Riru and LSPosed or submit full log to developers.]]></string>
<string name="system_prop_incorrect_summary">System prop incorrect</string>
<string name="system_prop_incorrect"><![CDATA[<b>WARNING:</b> System prop incorrect.<br/>Some necessary system properties deleted or modified.<br/>Modules may invalidate occasionally.]]></string>
<string name="system_prop_incorrect"><![CDATA[Some necessary system properties deleted or modified.<br/>Modules may invalidate occasionally.]]></string>
<string name="need_update">Need to update</string>
<string name="please_update_summary">Please install the latest version of LSPosed</string>
<string name="lsposed_not_active">LSPosed is not currently installed or active.</string>