Magisk info UI redesign

Major UI overhaul WIP
This commit is contained in:
topjohnwu 2019-01-28 14:24:52 -05:00
parent 4be8bd4d18
commit 18ab6b51fd
40 changed files with 393 additions and 323 deletions

View File

@ -73,6 +73,7 @@ dependencies {
fullImplementation "com.google.android.material:material:${androidXVersion}"
fullImplementation 'android.arch.work:work-runtime:1.0.0-beta03'
fullImplementation 'androidx.room:room-runtime:2.0.0'
fullImplementation 'androidx.transition:transition:1.0.1'
def butterKnifeVersion = '10.0.0'
fullImplementation "com.jakewharton:butterknife-runtime:${butterKnifeVersion}"

View File

@ -1,5 +1,6 @@
package com.topjohnwu.magisk.components;
import android.app.Activity;
import android.text.TextUtils;
import com.topjohnwu.core.Config;
@ -11,7 +12,7 @@ import androidx.annotation.NonNull;
public class ManagerInstallDialog extends CustomAlertDialog {
public ManagerInstallDialog(@NonNull BaseActivity a) {
public ManagerInstallDialog(@NonNull Activity a) {
super(a);
String name = Utils.fmt("MagiskManager v%s(%d)",
Config.remoteManagerVersionString, Config.remoteManagerVersionCode);

View File

@ -52,7 +52,7 @@ public class Notifications {
NotificationCompat.Builder builder = new NotificationCompat.Builder(app, Const.ID.UPDATE_NOTIFICATION_CHANNEL);
builder.setSmallIcon(R.drawable.ic_magisk_outline)
.setContentTitle(app.getString(R.string.magisk_update_title))
.setContentText(app.getString(R.string.magisk_update_available, Config.remoteMagiskVersionString))
.setContentText(app.getString(R.string.manager_download_install))
.setVibrate(new long[]{0, 100, 100, 100})
.setAutoCancel(true)
.setContentIntent(pendingIntent);

View File

@ -0,0 +1,50 @@
package com.topjohnwu.magisk.components;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.topjohnwu.magisk.R;
import butterknife.BindView;
public class UpdateCardHolder {
@BindView(R.id.status_icon) public ImageView statusIcon;
@BindView(R.id.progress) public ProgressBar progress;
@BindView(R.id.status) public TextView status;
@BindView(R.id.current_version) public TextView currentVersion;
@BindView(R.id.latest_version) public TextView latestVersion;
@BindView(R.id.install) public Button install;
public View itemView;
public UpdateCardHolder(LayoutInflater inflater, ViewGroup root) {
itemView = inflater.inflate(R.layout.update_card, root, false);
new UpdateCardHolder_ViewBinding(this, itemView);
}
public void setValid(boolean valid) {
progress.setVisibility(View.GONE);
statusIcon.setVisibility(View.VISIBLE);
if (valid) {
install.setVisibility(View.VISIBLE);
latestVersion.setVisibility(View.VISIBLE);
} else {
install.setVisibility(View.GONE);
latestVersion.setVisibility(View.GONE);
}
}
public void reset() {
progress.setVisibility(View.VISIBLE);
statusIcon.setVisibility(View.INVISIBLE);
latestVersion.setVisibility(View.GONE);
install.setVisibility(View.GONE);
status.setText(R.string.checking_for_updates);
}
}

View File

@ -1,7 +1,5 @@
package com.topjohnwu.magisk.fragments;
import android.app.NotificationManager;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
@ -12,7 +10,6 @@ import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.topjohnwu.core.Config;
@ -31,15 +28,23 @@ import com.topjohnwu.magisk.components.ExpandableView;
import com.topjohnwu.magisk.components.MagiskInstallDialog;
import com.topjohnwu.magisk.components.ManagerInstallDialog;
import com.topjohnwu.magisk.components.UninstallDialog;
import com.topjohnwu.magisk.components.UpdateCardHolder;
import com.topjohnwu.net.Networking;
import com.topjohnwu.superuser.Shell;
import com.topjohnwu.superuser.ShellUtils;
import java.util.Locale;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.cardview.widget.CardView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.transition.ChangeBounds;
import androidx.transition.Fade;
import androidx.transition.Transition;
import androidx.transition.TransitionManager;
import androidx.transition.TransitionSet;
import butterknife.BindColor;
import butterknife.BindView;
import butterknife.OnClick;
@ -50,17 +55,11 @@ public class MagiskFragment extends BaseFragment
private Container expandableContainer = new Container();
private static boolean shownDialog = false;
@BindView(R.id.swipeRefreshLayout) public SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.swipeRefreshLayout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.linearLayout) LinearLayout root;
@BindView(R.id.core_only_notice) CardView coreOnlyNotice;
@BindView(R.id.magisk_update) RelativeLayout magiskUpdate;
@BindView(R.id.magisk_update_icon) ImageView magiskUpdateIcon;
@BindView(R.id.magisk_update_status) TextView magiskUpdateText;
@BindView(R.id.magisk_update_progress) ProgressBar magiskUpdateProgress;
@BindView(R.id.magisk_status_icon) ImageView magiskStatusIcon;
@BindView(R.id.magisk_version) TextView magiskVersionText;
@BindView(R.id.safetyNet_card) CardView safetyNetCard;
@BindView(R.id.safetyNet_refresh) ImageView safetyNetRefreshIcon;
@BindView(R.id.safetyNet_status) TextView safetyNetStatusText;
@ -74,8 +73,6 @@ public class MagiskFragment extends BaseFragment
@BindView(R.id.install_option_card) CardView installOptionCard;
@BindView(R.id.keep_force_enc) CheckBox keepEncChkbox;
@BindView(R.id.keep_verity) CheckBox keepVerityChkbox;
@BindView(R.id.install_button) CardView installButton;
@BindView(R.id.install_text) TextView installText;
@BindView(R.id.uninstall_button) CardView uninstallButton;
@BindColor(R.color.red500) int colorBad;
@ -84,6 +81,10 @@ public class MagiskFragment extends BaseFragment
@BindColor(R.color.green500) int colorNeutral;
@BindColor(R.color.blue500) int colorInfo;
private UpdateCardHolder magisk;
private UpdateCardHolder manager;
private Transition transition;
@OnClick(R.id.safetyNet_title)
void safetyNet() {
Runnable task = () -> {
@ -105,19 +106,19 @@ public class MagiskFragment extends BaseFragment
} else {
task.run();
}
}
@OnClick(R.id.install_button)
void install() {
private void magiskInstall(View v) {
// Show Manager update first
if (Config.remoteManagerVersionCode > BuildConfig.VERSION_CODE) {
new ManagerInstallDialog((BaseActivity) requireActivity()).show();
new ManagerInstallDialog(requireActivity()).show();
return;
}
new MagiskInstallDialog((BaseActivity) requireActivity()).show();
}
((NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE)).cancelAll();
new MagiskInstallDialog((BaseActivity) getActivity()).show();
private void managerInstall(View v) {
new ManagerInstallDialog(requireActivity()).show();
}
@OnClick(R.id.uninstall_button)
@ -136,40 +137,56 @@ public class MagiskFragment extends BaseFragment
expandableContainer.expandLayout = expandLayout;
setupExpandable();
magisk = new UpdateCardHolder(inflater, root);
manager = new UpdateCardHolder(inflater, root);
magisk.install.setOnClickListener(this::magiskInstall);
manager.install.setOnClickListener(this::managerInstall);
root.addView(magisk.itemView, 0);
root.addView(manager.itemView, 1);
keepVerityChkbox.setChecked(Config.keepVerity);
keepVerityChkbox.setOnCheckedChangeListener((view, checked) -> Config.keepVerity = checked);
keepEncChkbox.setChecked(Config.keepEnc);
keepEncChkbox.setOnCheckedChangeListener((view, checked) -> Config.keepEnc = checked);
mSwipeRefreshLayout.setOnRefreshListener(this);
updateUI();
coreOnlyNotice.setVisibility(Config.get(Config.Key.COREONLY) ? View.VISIBLE : View.GONE);
safetyNetCard.setVisibility(hasGms() && Networking.checkNetworkStatus(app) ?
View.VISIBLE : View.GONE);
transition = new TransitionSet()
.setOrdering(TransitionSet.ORDERING_TOGETHER)
.addTransition(new Fade(Fade.OUT))
.addTransition(new ChangeBounds())
.addTransition(new Fade(Fade.IN));
updateUI();
return v;
}
@Override
public void onRefresh() {
safetyNetStatusText.setText(R.string.safetyNet_check_text);
setExpanded(false);
mSwipeRefreshLayout.setRefreshing(false);
TransitionManager.beginDelayedTransition(root, transition);
magisk.reset();
manager.reset();
Config.loadMagiskInfo();
updateUI();
magiskUpdateText.setText(R.string.checking_for_updates);
magiskUpdateProgress.setVisibility(View.VISIBLE);
magiskUpdateIcon.setVisibility(View.GONE);
safetyNetStatusText.setText(R.string.safetyNet_check_text);
Topic.reset(getSubscribedTopics());
Config.remoteMagiskVersionString = null;
Config.remoteMagiskVersionCode = -1;
collapse();
shownDialog = false;
// Trigger state check
if (Networking.checkNetworkStatus(app)) {
CheckUpdates.check();
} else {
mSwipeRefreshLayout.setRefreshing(false);
}
}
@ -208,61 +225,109 @@ public class MagiskFragment extends BaseFragment
private void updateUI() {
((MainActivity) requireActivity()).checkHideSection();
boolean hasNetwork = Networking.checkNetworkStatus(app);
boolean hasRoot = Shell.rootAccess();
magiskUpdate.setVisibility(hasNetwork ? View.VISIBLE : View.GONE);
installOptionCard.setVisibility(hasNetwork ? View.VISIBLE : View.GONE);
uninstallButton.setVisibility(hasRoot ? View.VISIBLE : View.GONE);
coreOnlyNotice.setVisibility(Config.get(Config.Key.COREONLY) ? View.VISIBLE : View.GONE);
int image, color;
String status;
if (Config.magiskVersionCode < 0) {
color = colorBad;
image = R.drawable.ic_cancel;
magiskVersionText.setText(R.string.magisk_version_error);
status = getString(R.string.magisk_version_error);
magisk.status.setText(status);
magisk.currentVersion.setVisibility(View.GONE);
} else {
color = colorOK;
image = R.drawable.ic_check_circle;
magiskVersionText.setText(getString(R.string.current_magisk_title, "v" + Config.magiskVersionString));
status = getString(R.string.magisk);
magisk.currentVersion.setText(getString(R.string.current_installed,
String.format(Locale.US, "v%s (%d)",
Config.magiskVersionString, Config.magiskVersionCode)));
}
magisk.statusIcon.setColorFilter(color);
magisk.statusIcon.setImageResource(image);
magiskStatusIcon.setImageResource(image);
magiskStatusIcon.setColorFilter(color);
manager.statusIcon.setColorFilter(colorOK);
manager.statusIcon.setImageResource(R.drawable.ic_check_circle);
manager.currentVersion.setText(getString(R.string.current_installed,
String.format(Locale.US, "v%s (%d)",
BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)));
if (!Networking.checkNetworkStatus(app)) {
// No network, updateCheckUI will not be triggered
magisk.status.setText(status);
manager.status.setText(R.string.app_name);
magisk.setValid(false);
manager.setValid(false);
}
}
private void updateCheckUI() {
int image, color;
safetyNetCard.setVisibility(hasGms() ? View.VISIBLE : View.GONE);
String status;
if (Config.remoteMagiskVersionCode < 0) {
color = colorNeutral;
image = R.drawable.ic_help;
magiskUpdateText.setText(R.string.invalid_update_channel);
installButton.setVisibility(View.GONE);
status = getString(R.string.invalid_update_channel);
} else {
color = colorOK;
image = R.drawable.ic_check_circle;
magiskUpdateText.setText(getString(R.string.install_magisk_title, "v" + Config.remoteMagiskVersionString));
installButton.setVisibility(View.VISIBLE);
if (Config.remoteManagerVersionCode > BuildConfig.VERSION_CODE) {
installText.setText(getString(R.string.update, getString(R.string.app_name)));
} else if (Config.magiskVersionCode > 0 && Config.remoteMagiskVersionCode > Config.magiskVersionCode) {
installText.setText(getString(R.string.update, getString(R.string.magisk)));
magisk.latestVersion.setText(getString(R.string.latest_version,
String.format(Locale.US, "v%s (%d)",
Config.remoteMagiskVersionString, Config.remoteMagiskVersionCode)));
if (Config.remoteMagiskVersionCode > Config.magiskVersionCode) {
color = colorInfo;
image = R.drawable.ic_update;
status = getString(R.string.magisk_update_title);
magisk.install.setText(R.string.update);
} else {
installText.setText(R.string.install);
color = colorOK;
image = R.drawable.ic_check_circle;
status = getString(R.string.magisk_up_to_date);
magisk.install.setText(R.string.install);
}
}
if (Config.magiskVersionCode > 0) {
// Only override status if Magisk is installed
magisk.statusIcon.setImageResource(image);
magisk.statusIcon.setColorFilter(color);
magisk.status.setText(status);
}
magiskUpdateIcon.setImageResource(image);
magiskUpdateIcon.setColorFilter(color);
magiskUpdateIcon.setVisibility(View.VISIBLE);
if (Config.remoteManagerVersionCode < 0) {
color = colorNeutral;
image = R.drawable.ic_help;
status = getString(R.string.invalid_update_channel);
} else {
manager.latestVersion.setText(getString(R.string.latest_version,
String.format(Locale.US, "v%s (%d)",
Config.remoteManagerVersionString, Config.remoteManagerVersionCode)));
if (Config.remoteManagerVersionCode > BuildConfig.VERSION_CODE) {
color = colorInfo;
image = R.drawable.ic_update;
status = getString(R.string.manager_update_title);
manager.install.setText(R.string.update);
} else {
color = colorOK;
image = R.drawable.ic_check_circle;
status = getString(R.string.manager_up_to_date);
manager.install.setText(R.string.install);
}
}
manager.statusIcon.setImageResource(image);
manager.statusIcon.setColorFilter(color);
manager.status.setText(status);
magiskUpdateProgress.setVisibility(View.GONE);
mSwipeRefreshLayout.setRefreshing(false);
magisk.setValid(Config.remoteMagiskVersionCode > 0);
manager.setValid(Config.remoteManagerVersionCode > 0);
TransitionManager.beginDelayedTransition(root, transition);
if (Config.remoteMagiskVersionCode < 0) {
// Hide install related components
installOptionCard.setVisibility(View.GONE);
uninstallButton.setVisibility(View.GONE);
} else {
// Show install related components
installOptionCard.setVisibility(View.VISIBLE);
uninstallButton.setVisibility(Shell.rootAccess() ? View.VISIBLE : View.GONE);
}
if (!shownDialog && !ShellUtils.fastCmdResult("env_check")) {
shownDialog = true;

View File

@ -1,9 +1,4 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#fff"
android:pathData="M21,10.12h-6.78l2.74,-2.82c-2.73,-2.7 -7.15,-2.8 -9.88,-0.1 -2.73,2.71 -2.73,7.08 0,9.79 2.73,2.71 7.15,2.71 9.88,0C18.32,15.65 19,14.08 19,12.1h2c0,1.98 -0.88,4.55 -2.64,6.29 -3.51,3.48 -9.21,3.48 -12.72,0 -3.5,-3.47 -3.53,-9.11 -0.02,-12.58 3.51,-3.47 9.14,-3.47 12.65,0L21,3v7.12zM12.5,8v4.25l3.5,2.08 -0.72,1.21L11,13V8h1.5z"/>
<vector android:height="24dp" android:viewportHeight="512"
android:viewportWidth="512" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:pathData="M8,256C8,119 119,8 256,8s248,111 248,248 -111,248 -248,248S8,393 8,256zM151.6,284.9l72.4,-75.5L224,392c0,13.3 10.7,24 24,24h16c13.3,0 24,-10.7 24,-24L288,209.4l72.4,75.5c9.3,9.7 24.8,9.9 34.3,0.4l10.9,-11c9.4,-9.4 9.4,-24.6 0,-33.9L273,107.7c-9.4,-9.4 -24.6,-9.4 -33.9,0L106.3,240.4c-9.4,9.4 -9.4,24.6 0,33.9l10.9,11c9.6,9.5 25.1,9.3 34.4,-0.4z"/>
</vector>

View File

@ -14,6 +14,7 @@
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -23,25 +24,25 @@
style="?attr/cardStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="4dp"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="12dp"
android:layout_marginTop="12dp">
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/core_only"
app:srcCompat="@drawable/ic_warning"/>
app:srcCompat="@drawable/ic_warning" />
<TextView
android:id="@+id/core_only"
@ -57,102 +58,15 @@
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
style="?attr/cardStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="7dp"
android:paddingTop="7dp">
<RelativeLayout
android:id="@+id/magisk_update"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp">
<ImageView
android:id="@+id/magisk_update_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/magisk_update_status"
android:visibility="gone" />
<ProgressBar
android:id="@+id/magisk_update_progress"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/magisk_update_status" />
<TextView
android:id="@+id/magisk_update_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:minWidth="225dp"
android:padding="6dp"
android:text="@string/checking_for_updates"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/magisk_status_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/magisk_version" />
<TextView
android:id="@+id/magisk_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:minWidth="225dp"
android:padding="6dp"
android:textStyle="bold" />
</RelativeLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/safetyNet_card"
style="?attr/cardStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:visibility="gone"
android:layout_marginEnd="5dp"
android:layout_marginBottom="4dp"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
@ -203,8 +117,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingEnd="10dp"
android:paddingStart="10dp">
android:paddingStart="10dp"
android:paddingEnd="10dp">
<LinearLayout
android:layout_width="match_parent"
@ -216,10 +130,10 @@
android:id="@+id/cts_status_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginBottom="5dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp" />
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<TextView
android:id="@+id/cts_status"
@ -267,10 +181,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginBottom="4dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="4dp"
android:visibility="gone"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
@ -278,8 +193,8 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:orientation="vertical">
<TextView
@ -295,74 +210,21 @@
android:id="@+id/keep_force_enc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="50dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:text="@string/keep_force_encryption" />
<CheckBox
android:id="@+id/keep_verity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="50dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:text="@string/keep_dm_verity" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/install_button"
style="?attr/cardStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginBottom="4dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
android:visibility="gone"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:layout_marginEnd="40dp"
android:layout_marginStart="40dp"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
app:srcCompat="@drawable/ic_logo" />
<TextView
android:id="@+id/install_text"
android:layout_width="180dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:ems="10"
android:fontFamily="sans-serif"
android:gravity="center"
android:text="@string/install"
android:textAllCaps="false"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/uninstall_button"
style="?attr/cardStyle"

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
style="?attr/cardStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="4dp"
app:cardCornerRadius="@dimen/card_corner_radius"
app:cardElevation="@dimen/card_elevation">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="12dp"
android:paddingBottom="12dp">
<ImageView
android:id="@+id/status_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/status"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progress"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/status_icon"
app:layout_constraintEnd_toEndOf="@+id/status_icon"
app:layout_constraintStart_toStartOf="@+id/status_icon"
app:layout_constraintTop_toTopOf="@+id/status_icon" />
<TextView
android:id="@+id/status"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:maxLines="1"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:text="@string/checking_for_updates"
android:textAppearance="?android:attr/textAppearanceMedium"
app:autoSizeTextType="uniform"
app:layout_constraintEnd_toStartOf="@+id/install"
app:layout_constraintStart_toEndOf="@+id/status_icon"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/current_version"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="@string/checking_for_updates"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="1sp"
app:layout_constraintEnd_toEndOf="@+id/status"
app:layout_constraintStart_toStartOf="@+id/status"
app:layout_constraintTop_toBottomOf="@+id/status" />
<TextView
android:id="@+id/latest_version"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="@string/checking_for_updates"
android:visibility="gone"
app:autoSizeMinTextSize="1sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/status"
app:layout_constraintStart_toStartOf="@+id/status"
app:layout_constraintTop_toBottomOf="@+id/current_version" />
<Button
android:id="@+id/install"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/install"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>

View File

@ -12,8 +12,7 @@
<string name="checking_safetyNet_status">التحقق من حالة SafetyNet…</string>
<string name="close">إغلاق</string>
<string name="command">الأمر: %1$s</string>
<string name="current_magisk_title">نسخة Magisk المثبته: %1$s</string>
<string name="deny">رفض</string>
<string name="deny">رفض</string>
<string name="deny_with_str">رفض%1$s</string>
<string name="disable_file_created">سيتم تعطيل الإضافة في إعادة التشغيل التالي</string>
<string name="disable_file_removed">سيتم تمكين الإضافة في إعادة التشغيل التالي</string>
@ -23,8 +22,7 @@
<string name="forever">للابد</string>
<string name="grant">سماح</string>
<string name="install">التثبيت</string>
<string name="install_magisk_title">آخر نسخة Magisk: %1$s</string>
<string name="installed">مثبت</string>
<string name="installed">مثبت</string>
<string name="internal_storage">"يتم تخزين الملف المضغوط في:
[التخزين الداخلي]%1$s"</string>
<string name="keep_dm_verity">إبقاء AVB 2.0/dm-verity</string>
@ -196,7 +194,7 @@
<string name="su_db_corrupt">قاعدة بيانات SU معطوبة ، سوف يتم إنشاء قاعدة بيانات جديدة</string>
<string name="system_default">(أفتراضي النظام)</string>
<string name="uninstall_magisk_msg">سيتم تعطيل/إزالة جميع الوحدات. ستتم إزالة الجذر ، وربما تشفير بياناتك إذا كانت بياناتك غير مشفرة حالياً</string>
<string name="update">تحديث %1$s</string>
<string name="update">تحديث</string>
<string name="updated_on">تم التحديث في: %1$s</string>
<string name="warning">تحذير</string>
<string name="zip_download_msg">تحميل ملف zip (%1$d%%)…</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Допълнителни настройки</string>
<string name="keep_force_encryption">Запазване на наложеното криптиране</string>
<string name="keep_dm_verity">Запазване на AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Инсталирана версия: %1$s</string>
<string name="install_magisk_title">Най-нова версия: %1$s</string>
<string name="current_installed">Инсталирана: %1$s</string>
<string name="latest_version">Най-нова: %1$s</string>
<string name="uninstall">Деинсталиране</string>
<string name="uninstall_magisk_title">Деинсталиране на Magisk</string>
<string name="uninstall_magisk_msg">Всички модули ще бъдат изключени/премахнати. Руут достъпът ще бъде премахнат и е възможно криптиране на данните Ви.</string>
<string name="update">Актуализация %1$s</string>
<string name="update">Актуализация</string>
<!--Module Fragment-->
<string name="no_info_provided">(Не е представена информация)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Configuració avançada</string>
<string name="keep_force_encryption">Mantenir el xifrat forçat</string>
<string name="keep_dm_verity">Mantenir AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versió instal·lada: %1$s</string>
<string name="install_magisk_title">Última versió: %1$s</string>
<string name="current_installed">Instal·lada: %1$s</string>
<string name="latest_version">Última: %1$s</string>
<string name="uninstall">Desinstal·lar</string>
<string name="uninstall_magisk_msg">Tots els mòduls seran desactivats / eliminats. L\'accés Root s\'eliminarà i, possiblement, xifrarà totes les dades si no estan ja xifrades.</string>
<string name="uninstall_magisk_title">Desinstal·lar Magisk</string>
<string name="update">Actualització %1$s</string>
<string name="update">Actualització</string>
<!--Module Fragment-->
<string name="no_info_provided">(No hi ha informació)</string>

View File

@ -21,8 +21,8 @@
<string name="advanced_settings_title">Pokročilá Nastavení</string>
<string name="keep_force_encryption">Udržet "force encryption"</string>
<string name="keep_dm_verity">Udržet AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Nainstalovaná verze: %1$s</string>
<string name="install_magisk_title">Poslední verze: %1$s</string>
<string name="current_installed">Nainstalovaná: %1$s</string>
<string name="latest_version">Poslední: %1$s</string>
<string name="uninstall">Odinstalovat</string>
<string name="uninstall_magisk_title">Odinstalovat Magisk</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Erweiterte Optionen</string>
<string name="keep_force_encryption">\"force encryption\" beibehalten</string>
<string name="keep_dm_verity">AVB 2.0/dm-verity beibehalten</string>
<string name="current_magisk_title">Installierte Version: %1$s</string>
<string name="install_magisk_title">Neueste Version: %1$s</string>
<string name="current_installed">Installierte: %1$s</string>
<string name="latest_version">Neueste: %1$s</string>
<string name="uninstall">Deinstallieren</string>
<string name="uninstall_magisk_title">Magisk deinstallieren</string>
<string name="uninstall_magisk_msg">Alle Module werden deaktiviert/entfernt. Root wird entfernt und möglicherweise werden Ihre Daten verschlüsseln, falls Ihre Daten derzeit nicht verschlüsselt sind.</string>
<string name="update">Aktualisierung %1$s</string>
<string name="update">Aktualisierung</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nichts angegeben)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Προηγμένες ρυθμίσεις</string>
<string name="keep_force_encryption">Διατήρηση επιβεβλημένης κρυπτογράφησης</string>
<string name="keep_dm_verity">Διατήρηση dm-verity</string>
<string name="current_magisk_title">Εγκατεστημένη έκδοση: %1$s</string>
<string name="install_magisk_title">Τελευταία έκδοση: %1$s</string>
<string name="current_installed">Εγκατεστημένη: %1$s</string>
<string name="latest_version">Τελευταία: %1$s</string>
<string name="uninstall">Απεγκατάσταση</string>
<string name="uninstall_magisk_title">Απεγκατάσταση Magisk</string>
<string name="uninstall_magisk_msg">Όλα τα modules θα απενεργοποιηθούν/αφαιρεθούν. Το root θα αφαιρεθεί και ενδέχεται να κρυπτογραφηθούν τα δεδομένα σας, εάν δεν είναι κρυπτογραφημένα</string>
<string name="update">Ενημέρωση %1$s</string>
<string name="update">Ενημέρωση</string>
<!--Module Fragment-->
<string name="no_info_provided">(Δεν δόθηκαν πληροφορίες)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Ajustes avanzados</string>
<string name="keep_force_encryption">Mantener cifrado forzado</string>
<string name="keep_dm_verity">Mantener AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versión instalada: %1$s</string>
<string name="install_magisk_title">Última versión: %1$s</string>
<string name="current_installed">Instalada: %1$s</string>
<string name="latest_version">Última: %1$s</string>
<string name="uninstall">Desinstalar</string>
<string name="uninstall_magisk_msg">Todos los módulos serán desactivados / eliminados. El acceso Root se eliminará y, posiblemente, cifrará los datos si los datos no están cifrados actualmente.</string>
<string name="uninstall_magisk_title">Desinstalar Magisk</string>
<string name="update">Actualización %1$s</string>
<string name="update">Actualización</string>
<!--Module Fragment-->
<string name="no_info_provided">(No hay información)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Täpsemad seaded</string>
<string name="keep_force_encryption">Säilita sunnitud krüpteering</string>
<string name="keep_dm_verity">Säilita AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Installitud versioon: %1$s</string>
<string name="install_magisk_title">Viimane versioon: %1$s</string>
<string name="current_installed">Installitud: %1$s</string>
<string name="latest_version">Viimane: %1$s</string>
<string name="uninstall">Eemalda</string>
<string name="uninstall_magisk_title">Eemalda Magisk</string>
<string name="uninstall_magisk_msg">Kõik moodulid keelatakse/eemaldatakse. Juurkasutaja eemaldatakse ning potensiaalselt krüptitakse su andmed, kui need ei ole hetkel krüpteeritud</string>
<string name="update">Uuenda %1$s\'i</string>
<string name="update">Uuenda</string>
<!--Module Fragment-->
<string name="no_info_provided">(Info puudub)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Paramètres avancés</string>
<string name="keep_force_encryption">Conserver le chiffrement forcé</string>
<string name="keep_dm_verity">Conserver AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Version installée : %1$s</string>
<string name="install_magisk_title">Dernière version : %1$s</string>
<string name="current_installed">Version : %1$s</string>
<string name="latest_version">Dernière : %1$s</string>
<string name="uninstall">Désinstaller</string>
<string name="uninstall_magisk_title">Désinstaller Magisk</string>
<string name="uninstall_magisk_msg">Tous les modules seront désactivés ou supprimés. Les permissions de superutilisateur seront perdues et vos données seront potentiellement chiffrées si elles ne le sont pas déjà.</string>
<string name="update">Mise à jour %1$s</string>
<string name="update">Mise à jour</string>
<!--Module Fragment-->
<string name="no_info_provided">(aucune information transmise)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Napredne postavke</string>
<string name="keep_force_encryption">Zadrži prisilno šifirannje</string>
<string name="keep_dm_verity">Zadrži AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Instalirana inačica: %1$s</string>
<string name="install_magisk_title">Najnovija inačica: %1$s</string>
<string name="current_installed">Instalirana: %1$s</string>
<string name="latest_version">Najnovija: %1$s</string>
<string name="uninstall">Deinstaliraj</string>
<string name="uninstall_magisk_title">Deinstaliraj Magisk</string>
<string name="uninstall_magisk_msg">Svi moduli će biti onemogućeni/uklonjeni. Root će biti uklonjen i potencijalno šifrirati Vaše podatke, ukoliko Vaši podaci trenutačno nisu šifrirani</string>
<string name="update">Ažuriraj %1$s</string>
<string name="update">Ažuriraj</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nema podataka)</string>

View File

@ -22,12 +22,12 @@
<string name="advanced_settings_title">Pengaturan Lanjutan</string>
<string name="keep_force_encryption">Pertahankan enkripsi paksa</string>
<string name="keep_dm_verity">Pertahankan AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versi yang Terpasang: %1$s</string>
<string name="install_magisk_title">Versi Terbaru: %1$s</string>
<string name="current_installed">Versi yang Terpasang: %1$s</string>
<string name="latest_version">Versi Terbaru: %1$s</string>
<string name="uninstall">Copot</string>
<string name="uninstall_magisk_title">Copot Magisk</string>
<string name="uninstall_magisk_msg">Semua modul akan dinonaktifkan/dihapus. Root akan dihapus, dan berpotensi mengenkripsi data Anda jika belum.</string>
<string name="update">Perbarui %1$s</string>
<string name="update">Perbarui</string>
<!--Module Fragment-->
<string name="no_info_provided">(Tidak ada info tersedia)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Impostazioni avanzate</string>
<string name="keep_force_encryption">Mantieni crittografia forzata</string>
<string name="keep_dm_verity">Mantieni AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versione installata: %1$s</string>
<string name="install_magisk_title">Ultima versione disponibile: %1$s</string>
<string name="current_installed">Versione: %1$s</string>
<string name="latest_version">Ultima: %1$s</string>
<string name="uninstall">Disinstalla</string>
<string name="uninstall_magisk_title">Disinstalla Magisk</string>
<string name="uninstall_magisk_msg">Tutti i moduli verranno disabilitati/rimossi. Il root verrà rimosso e i tuoi dati potrebbero venire criptati, nel caso non lo siano già.</string>
<string name="update">Aggiorna %1$s</string>
<string name="update">Aggiorna</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nessuna informazione)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">高度な設定</string>
<string name="keep_force_encryption">強制的な暗号化を維持する</string>
<string name="keep_dm_verity">AVB 2.0/dm-verityを維持する</string>
<string name="current_magisk_title">インストール済: %1$s</string>
<string name="install_magisk_title">最新: %1$s</string>
<string name="current_installed">インストール済: %1$s</string>
<string name="latest_version">最新: %1$s</string>
<string name="uninstall">アンインストール</string>
<string name="uninstall_magisk_title">Magiskのアンインストール</string>
<string name="uninstall_magisk_msg">すべてのモジュールが無効化/削除されます。Rootも無効化され、ストレージが暗号化されていない場合、暗号化される場合があります</string>
<string name="update">%1$sの更新</string>
<string name="update">更新</string>
<!--Module Fragment-->
<string name="no_info_provided">(情報がありません)</string>

View File

@ -21,8 +21,8 @@
<string name="advanced_settings_title">고급 설정</string>
<string name="keep_force_encryption">강제 암호화 유지</string>
<string name="keep_dm_verity">AVB 2.0/dm-verity 유지</string>
<string name="current_magisk_title">설치된버전: %1$s</string>
<string name="install_magisk_title">최신버전: %1$s</string>
<string name="current_installed">설치된: %1$s</string>
<string name="latest_version">최신: %1$s</string>
<string name="uninstall">제거</string>
<string name="uninstall_magisk_title">Magisk 제거</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Išplėstiniai nustatymai</string>
<string name="keep_force_encryption">Palikti priverstinį šifravimą</string>
<string name="keep_dm_verity">Palikti dm-verity</string>
<string name="current_magisk_title">Instaliuota versija: %1$s</string>
<string name="install_magisk_title">Naujausia versija: %1$s</string>
<string name="current_installed">Instaliuota: %1$s</string>
<string name="latest_version">Naujausia: %1$s</string>
<string name="uninstall">Pašalinti</string>
<string name="uninstall_magisk_title">Pašalinti Magisk</string>
<string name="uninstall_magisk_msg">Visi papildiniai bus išjungti/pašalinti. Root bus panaikintas. Yra galimybė, kad duomenys bus užšifruoti…</string>
<string name="update">Atnaujinti %1$s</string>
<string name="update">Atnaujinti</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nėra informacijos)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Avanserte innstillinger</string>
<string name="keep_force_encryption">Preserver tvunget kryptering</string>
<string name="keep_dm_verity">Preserver AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Installert versjon: %1$s</string>
<string name="install_magisk_title">Nyeste versjon: %1$s</string>
<string name="current_installed">Installert: %1$s</string>
<string name="latest_version">Nyeste: %1$s</string>
<string name="uninstall">Avinstaller</string>
<string name="uninstall_magisk_title">Avinstaller Magisk</string>
<string name="uninstall_magisk_msg">Alle moduler vil bli avskrudd/fjernet. Root vil bli fjernet, og dataene dine blir kanskje kryptert dersom de ikke allerede er det.</string>
<string name="update">Oppdater %1$s</string>
<string name="update">Oppdater</string>
<!--Module Fragment-->
<string name="no_info_provided">(Ingen info er oppgitt)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Geavanceerde instellingen</string>
<string name="keep_force_encryption">Behoud afgedwongen versleuteling</string>
<string name="keep_dm_verity">Behoud AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Geïnstalleerde versie: %1$s</string>
<string name="install_magisk_title">Recentste versie: %1$s</string>
<string name="current_installed">Geïnstalleerde: %1$s</string>
<string name="latest_version">Recentste: %1$s</string>
<string name="uninstall">Deïnstalleren</string>
<string name="uninstall_magisk_title">Magisk deïnstalleren</string>
<string name="uninstall_magisk_msg">Alle modules worden uitgeschakeld/verwijderd. Root wordt verwijderd, en je data wordt mogelijk versleuteld als deze dat momenteel niet is</string>
<string name="update">Bijwerken %1$s</string>
<string name="update">Bijwerken</string>
<!--Module Fragment-->
<string name="no_info_provided">(Geen info verstrekt)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Zaawansowane Ustawienia</string>
<string name="keep_force_encryption">Zachowaj force encryption</string>
<string name="keep_dm_verity">Zachowaj AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Zainstalowana Wersja: %1$s</string>
<string name="install_magisk_title">Ostatnia Wersja: %1$s</string>
<string name="current_installed">Zainstalowana: %1$s</string>
<string name="latest_version">Ostatnia: %1$s</string>
<string name="uninstall">Odinstaluj</string>
<string name="uninstall_magisk_title">Odinstaluj Magisk</string>
<string name="uninstall_magisk_msg">Wszystkie moduły będą wyłączone/usunięte. Root zostanie usunięty i przywrócone szyfrowanie danych, jeśli nie są te dane obecnie szyfrowane</string>
<string name="update">Aktualizacja %1$s</string>
<string name="update">Aktualizacja</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nie umieszczono informacji)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Configurações Avançadas</string>
<string name="keep_force_encryption">Preservar criptografia forçada</string>
<string name="keep_dm_verity">Preservar AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versão Instalada: %1$s</string>
<string name="install_magisk_title">Última Versão: %1$s</string>
<string name="current_installed">Instalada: %1$s</string>
<string name="latest_version">Última: %1$s</string>
<string name="uninstall">Desinstalar</string>
<string name="uninstall_magisk_title">Desinstalar Magisk</string>
<string name="uninstall_magisk_msg">Todos os módulos serão desativados/removidos. O root será removido, e potencialmente criptografará seus dados se seus dados não estiverem atualmente criptografados</string>
<string name="update">Atualizar %1$s</string>
<string name="update">Atualizar</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nenhuma informação fornecida)</string>

View File

@ -23,11 +23,11 @@
<string name="advanced_settings_title">Definições avançadas</string>
<string name="keep_force_encryption">Manter encriptação forçada</string>
<string name="keep_dm_verity">Manter AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versão instalada: %1$s</string>
<string name="install_magisk_title">Última versão: %1$s</string>
<string name="current_installed">Instalada: %1$s</string>
<string name="latest_version">Última: %1$s</string>
<string name="uninstall">Desinstalar</string>
<string name="uninstall_magisk_title">Desinstalar Magisk</string>
<string name="update">Atualizar %1$s</string>
<string name="update">Atualizar</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nenhuma informação fornecida)</string>

View File

@ -22,12 +22,12 @@
<string name="advanced_settings_title">Setări avansate</string>
<string name="keep_force_encryption">Păstrare criptare forţată</string>
<string name="keep_dm_verity">Păstrare AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Versiune instalată: %1$s</string>
<string name="install_magisk_title">Ultima versiune: %1$s</string>
<string name="current_installed">Instalată: %1$s</string>
<string name="latest_version">Ultima: %1$s</string>
<string name="uninstall">Dezinstalare</string>
<string name="uninstall_magisk_title">Dezinstalare Magisk</string>
<string name="uninstall_magisk_msg">Toate modulele vor fi dezactivate/eliminate. Accesul la Root va fi eliminat și potențial se vor cripta datele dacă nu sunt în prezent criptate</string>
<string name="update">Actualizare %1$s</string>
<string name="update">Actualizare</string>
<!--Module Fragment-->

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Расширенные опции</string>
<string name="keep_force_encryption">Сохранить шифрование</string>
<string name="keep_dm_verity">Сохранить AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Установлена версия: %1$s</string>
<string name="install_magisk_title">Последняя версия: %1$s</string>
<string name="current_installed">Установлена: %1$s</string>
<string name="latest_version">Последняя: %1$s</string>
<string name="uninstall">Удаление</string>
<string name="uninstall_magisk_title">Удаление Magisk</string>
<string name="uninstall_magisk_msg">Все модули будут отключены/удалены. Root-права будут удалены. Шифрование будет активировано.</string>
<string name="update">Обновить %1$s</string>
<string name="update">Обновить</string>
<!--Module Fragment-->
<string name="no_info_provided">(Нет информации)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Pokročilé nastavenia</string>
<string name="keep_force_encryption">Ponechať vynútené šifrovanie</string>
<string name="keep_dm_verity">Ponechať AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Nainštalovaná verzia: %1$s</string>
<string name="install_magisk_title">Najnovšia verzia: %1$s</string>
<string name="current_installed">Nainštalovaná: %1$s</string>
<string name="latest_version">Najnovšia: %1$s</string>
<string name="uninstall">Odinštalovať</string>
<string name="uninstall_magisk_msg">Všetky moduly budú zakázané/odstránené. Root bude odstránený a teoreticky môže dôjsť k zašifrovaniu vašich dát ak ich momentálne nemáte zašifrované</string>
<string name="uninstall_magisk_title">Odinštalovať Magisk</string>
<string name="update">Aktualizovať %1$s</string>
<string name="update">Aktualizovať</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nie sú k dispozícii žiadne informácie)</string>

View File

@ -24,12 +24,12 @@
<string name="advanced_settings_title">Напредна Подешавања</string>
<string name="keep_force_encryption">Задржи форсирану енкрипцију</string>
<string name="keep_dm_verity">Задржи AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Инсталирана верзија: %1$s</string>
<string name="install_magisk_title">Најновија верзија: %1$s</string>
<string name="current_installed">Инсталирана: %1$s</string>
<string name="latest_version">Најновија: %1$s</string>
<string name="uninstall">Унинсталирај</string>
<string name="uninstall_magisk_title">Унинсталирај Магиск</string>
<string name="uninstall_magisk_msg">Сви модули ће бити онеспособљени/уклоњени. Корен ће бити уклоњен, и потенцијално енкриптовати твоје податке уколико већ нису енкриптовани</string>
<string name="update">Ажурирање %1$s</string>
<string name="update">Ажурирање</string>
<!--Module Fragment-->
<string name="no_info_provided">(Без информација)</string>

View File

@ -23,11 +23,11 @@
<string name="advanced_settings_title">Advancerade inställningar</string>
<string name="keep_force_encryption">Fortsätt tvinga kryptering</string>
<string name="keep_dm_verity">Behåll AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Installerad: %1$s</string>
<string name="install_magisk_title">Senaste: %1$s</string>
<string name="current_installed">Installerad: %1$s</string>
<string name="latest_version">Senaste: %1$s</string>
<string name="uninstall">Avinstallera</string>
<string name="uninstall_magisk_title">Avinstallera Magisk</string>
<string name="update">Uppdatera %1$s</string>
<string name="update">Uppdatera</string>
<!--Module Fragment-->
<string name="no_info_provided">(Ingen information tillhandahållen)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Gelişmiş Ayarlar</string>
<string name="keep_force_encryption">Şifrelemeyi zorlamayı sürdür</string>
<string name="keep_dm_verity">AVB 2.0/dm-verity\'yi koru</string>
<string name="current_magisk_title">Yüklü Sürüm: %1$s</string>
<string name="install_magisk_title">Yeni Sürüm: %1$s</string>
<string name="current_installed">Yüklü: %1$s</string>
<string name="latest_version">Yeni: %1$s</string>
<string name="uninstall">Kaldır</string>
<string name="uninstall_magisk_title">"Magisk\'i kaldır"</string>
<string name="uninstall_magisk_msg">Tüm modüller devre dışı bırakılacak/kaldırılacaktır. Kök erişimi kaldırılacak ve verileriniz şu anda şifrelenmemişse potansiyel olarak verileriniz şifrelenecek</string>
<string name="update">Güncelle %1$s</string>
<string name="update">Güncelle</string>
<!--Module Fragment-->
<string name="no_info_provided">(Hiçbir açıklama sağlanmadı)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Розширені налаштування</string>
<string name="keep_force_encryption">Залишити примусове шифрування</string>
<string name="keep_dm_verity">Залишити AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Поточна версія: %1$s</string>
<string name="install_magisk_title">Найновіша версія: %1$s</string>
<string name="current_installed">Поточна: %1$s</string>
<string name="latest_version">Найновіша: %1$s</string>
<string name="uninstall">Видалити</string>
<string name="uninstall_magisk_title">Видалити Magisk</string>
<string name="uninstall_magisk_msg">Ця дія призведе до видалення всіх модулів, MagiskSU, і може зашифрувати дані, якщо вони не зашифровані.\nВпевнені, що бажаєте продовжити?</string>
<string name="update">Оновити %1$s</string>
<string name="update">Оновити</string>
<!--Module Fragment-->
<string name="no_info_provided">(немає наданої інформації)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">Thiết lập nâng cao</string>
<string name="keep_force_encryption">Giữ bắt buộc mã hoá</string>
<string name="keep_dm_verity">Giữ AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Phiên bản đã cài: %1$s</string>
<string name="install_magisk_title">Phiên bản mới nhất: %1$s</string>
<string name="current_installed">Đã cài: %1$s</string>
<string name="latest_version">Mới nhất: %1$s</string>
<string name="uninstall">Gỡ bỏ</string>
<string name="uninstall_magisk_title">Gỡ bỏ Magisk</string>
<string name="uninstall_magisk_msg">Tất cả mô-đun sẽ bị vô hiệu/loại bỏ. Root sẽ bị loại bỏ và dữ liệu của bạn có thể bị mã hoá.</string>
<string name="update">Cập nhật %1$s</string>
<string name="update">Cập nhật</string>
<!--Module Fragment-->
<string name="no_info_provided">(Không có thông tin được cung cấp)</string>

View File

@ -23,12 +23,12 @@
<string name="advanced_settings_title">安装选项</string>
<string name="keep_force_encryption">保持强制加密</string>
<string name="keep_dm_verity">保留 AVB 2.0/dm-verity</string>
<string name="current_magisk_title">已安装版本%1$s</string>
<string name="install_magisk_title">最新的版本%1$s</string>
<string name="current_installed">已安装%1$s</string>
<string name="latest_version">最新%1$s</string>
<string name="uninstall">卸载</string>
<string name="uninstall_magisk_title">卸载 Magisk</string>
<string name="uninstall_magisk_msg">所有模块将停用或删除Root 会被移除。未加密的设备重启时可能会被进行加密。</string>
<string name="update">更新 %1$s</string>
<string name="update">更新</string>
<!--Module Fragment-->
<string name="no_info_provided">(未提供信息)</string>

View File

@ -21,8 +21,8 @@
<string name="advanced_settings_title">高級設置</string>
<string name="keep_force_encryption">保持強制加密</string>
<string name="keep_dm_verity">保留 AVB 2.0/dm-verity</string>
<string name="current_magisk_title">已安裝版本%1$s</string>
<string name="install_magisk_title">最新的版本%1$s</string>
<string name="current_installed">已安裝%1$s</string>
<string name="latest_version">最新%1$s</string>
<string name="uninstall">解除安裝</string>
<!--Module Fragment-->
@ -157,7 +157,7 @@
<string name="settings_ns_global">全域 Namespace</string>
<string name="settings_ns_isolate">獨立 Namespace</string>
<string name="settings_ns_requester">繼承 Namespace</string>
<string name="update">更新 %1$s</string>
<string name="update">更新</string>
<string name="update_channel">Magisk 更新</string>
<string name="system_default">(系統預設)</string>
<string name="language">語言</string>

View File

@ -18,17 +18,17 @@
<string name="safetyNet_check_success">SafetyNet Check Success</string>
<string name="safetyNet_api_error">SafetyNet API Error</string>
<string name="safetyNet_res_invalid">The response is invalid.</string>
<!--Install Fragment-->
<string name="magisk_up_to_date">Magisk is up to date</string>
<string name="manager_up_to_date">Magisk Manager is up to date</string>
<string name="advanced_settings_title">Advanced Settings</string>
<string name="keep_force_encryption">Preserve force encryption</string>
<string name="keep_dm_verity">Preserve AVB 2.0/dm-verity</string>
<string name="current_magisk_title">Installed Version: %1$s</string>
<string name="install_magisk_title">Latest Version: %1$s</string>
<string name="current_installed">Installed: %1$s</string>
<string name="latest_version">Latest: %1$s</string>
<string name="uninstall">Uninstall</string>
<string name="uninstall_magisk_title">Uninstall Magisk</string>
<string name="uninstall_magisk_msg">All modules will be disabled/removed. Root will be removed, and your data potentially encrypted if not already.</string>
<string name="update">Update %1$s</string>
<string name="update">Update</string>
<!--Module Fragment-->
<string name="no_info_provided">(No info provided)</string>