diff --git a/app/build.gradle b/app/build.gradle index bfc9efb0b..5e9983219 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,6 +54,7 @@ dependencies { compile 'com.jakewharton:butterknife:8.5.1' compile 'com.github.clans:fab:1.6.4' compile 'com.thoughtbot:expandablerecyclerview:1.4' + compile 'us.feras.mdv:markdownview:1.1.0' compile 'com.madgag.spongycastle:core:1.54.0.0' compile 'com.madgag.spongycastle:prov:1.54.0.0' compile 'com.madgag.spongycastle:pkix:1.54.0.0' diff --git a/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java b/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java index 3c14f5c64..254ea0b9a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/InstallFragment.java @@ -87,7 +87,7 @@ public class InstallFragment extends Fragment implements CallbackEvent.Listener< }, getApplication().magiskLink, Utils.getLegalFilename(filename))) - .setNeutralButton(R.string.check_release_notes, (dialog, which) -> { + .setNeutralButton(R.string.release_notes, (dialog, which) -> { getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getApplication().releaseNoteLink))); }) .setNegativeButton(R.string.no_thanks, null) diff --git a/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java b/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java index f0b3f0d59..9bdbb1098 100644 --- a/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/StatusFragment.java @@ -242,7 +242,7 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener { + .setNeutralButton(R.string.release_notes, (dialog, which) -> { getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getApplication().releaseNoteLink))); }) .setNegativeButton(R.string.no_thanks, null) diff --git a/app/src/main/java/com/topjohnwu/magisk/adapters/ReposAdapter.java b/app/src/main/java/com/topjohnwu/magisk/adapters/ReposAdapter.java index 5a661c92e..e90134ac6 100644 --- a/app/src/main/java/com/topjohnwu/magisk/adapters/ReposAdapter.java +++ b/app/src/main/java/com/topjohnwu/magisk/adapters/ReposAdapter.java @@ -1,17 +1,12 @@ package com.topjohnwu.magisk.adapters; -import android.animation.Animator; -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; import android.content.Context; -import android.content.Intent; import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewTreeObserver; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -19,14 +14,12 @@ import android.widget.TextView; import com.topjohnwu.magisk.R; import com.topjohnwu.magisk.asyncs.ProcessRepoZip; import com.topjohnwu.magisk.components.AlertDialogBuilder; +import com.topjohnwu.magisk.components.MarkDownWindow; import com.topjohnwu.magisk.module.Repo; import com.topjohnwu.magisk.receivers.DownloadReceiver; import com.topjohnwu.magisk.utils.Utils; -import com.topjohnwu.magisk.utils.WebWindow; -import java.util.HashSet; import java.util.List; -import java.util.Set; import butterknife.BindView; import butterknife.ButterKnife; @@ -34,7 +27,7 @@ import butterknife.ButterKnife; public class ReposAdapter extends RecyclerView.Adapter { private List mUpdateRepos, mInstalledRepos, mOthersRepos; - private Set expandList = new HashSet<>(); + private Context mContext; public ReposAdapter(List update, List installed, List others) { mUpdateRepos = update; @@ -44,45 +37,31 @@ public class ReposAdapter extends RecyclerView.Adapter @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_repo, parent, false); + mContext = parent.getContext(); + View v = LayoutInflater.from(mContext).inflate(R.layout.list_item_repo, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { - Context context = holder.itemView.getContext(); Repo repo = getItem(position); holder.title.setText(repo.getName()); holder.versionName.setText(repo.getVersion()); String author = repo.getAuthor(); - holder.author.setText(TextUtils.isEmpty(author) ? null : context.getString(R.string.author, author)); + holder.author.setText(TextUtils.isEmpty(author) ? null : mContext.getString(R.string.author, author)); holder.description.setText(repo.getDescription()); - holder.setExpanded(expandList.contains(repo)); + holder.infoLayout.setOnClickListener(v -> new MarkDownWindow(null, repo.getDetailUrl(), mContext)); - holder.itemView.setOnClickListener(view -> { - if (holder.mExpanded) { - holder.collapse(); - expandList.remove(repo); - } else { - holder.expand(); - expandList.add(repo); - } - }); - holder.changeLog.setOnClickListener(view -> { - if (!TextUtils.isEmpty(repo.getLogUrl())) { - new WebWindow(context.getString(R.string.changelog), repo.getLogUrl(), context); - } - }); - holder.updateImage.setOnClickListener(view -> { + holder.downloadImage.setOnClickListener(v -> { String filename = repo.getName() + "-" + repo.getVersion() + ".zip"; - new AlertDialogBuilder(context) - .setTitle(context.getString(R.string.repo_install_title, repo.getName())) - .setMessage(context.getString(R.string.repo_install_msg, filename)) + new AlertDialogBuilder(mContext) + .setTitle(mContext.getString(R.string.repo_install_title, repo.getName())) + .setMessage(mContext.getString(R.string.repo_install_msg, filename)) .setCancelable(true) .setPositiveButton(R.string.download_install, (dialogInterface, i) -> Utils.dlAndReceive( - context, + mContext, new DownloadReceiver() { @Override public void onDownloadDone(Uri uri) { @@ -94,16 +73,6 @@ public class ReposAdapter extends RecyclerView.Adapter .setNegativeButton(R.string.no_thanks, null) .show(); }); - holder.authorLink.setOnClickListener(view -> { - if (!TextUtils.isEmpty(repo.getDonateUrl())) { - context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getDonateUrl()))); - } - }); - holder.supportLink.setOnClickListener(view -> { - if (!TextUtils.isEmpty(repo.getSupportUrl())) { - context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getSupportUrl()))); - } - }); } @Override @@ -131,97 +100,12 @@ public class ReposAdapter extends RecyclerView.Adapter @BindView(R.id.version_name) TextView versionName; @BindView(R.id.description) TextView description; @BindView(R.id.author) TextView author; - @BindView(R.id.expand_layout) LinearLayout expandLayout; - @BindView(R.id.update) ImageView updateImage; - @BindView(R.id.changeLog) ImageView changeLog; - @BindView(R.id.authorLink) ImageView authorLink; - @BindView(R.id.supportLink) ImageView supportLink; - - private ValueAnimator mAnimator; - private ObjectAnimator animY2; - private boolean mExpanded = false; - private static int expandHeight = 0; + @BindView(R.id.info_layout) LinearLayout infoLayout; + @BindView(R.id.download) ImageView downloadImage; ViewHolder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); - expandLayout.getViewTreeObserver().addOnPreDrawListener( - new ViewTreeObserver.OnPreDrawListener() { - - @Override - public boolean onPreDraw() { - if (expandHeight == 0) { - final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - expandLayout.measure(widthSpec, heightSpec); - expandHeight = expandLayout.getMeasuredHeight(); - } - - expandLayout.getViewTreeObserver().removeOnPreDrawListener(this); - expandLayout.setVisibility(View.GONE); - mAnimator = slideAnimator(0, expandHeight); - animY2 = ObjectAnimator.ofFloat(updateImage, "translationY", expandHeight / 2); - return true; - } - - }); - } - - private void setExpanded(boolean expanded) { - mExpanded = expanded; - ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams(); - layoutParams.height = expanded ? expandHeight : 0; - expandLayout.setLayoutParams(layoutParams); - expandLayout.setVisibility(expanded ? View.VISIBLE : View.GONE); - if (expanded) { - updateImage.setTranslationY(expandHeight / 2); - } else { - updateImage.setTranslationY(0); - } - } - - private void expand() { - expandLayout.setVisibility(View.VISIBLE); - mAnimator.start(); - animY2.start(); - mExpanded = true; - } - - private void collapse() { - if (!mExpanded) return; - int finalHeight = expandLayout.getHeight(); - ValueAnimator mAnimator = slideAnimator(finalHeight, 0); - mAnimator.addListener(new Animator.AnimatorListener() { - @Override - public void onAnimationEnd(Animator animator) { - expandLayout.setVisibility(View.GONE); - } - - @Override - public void onAnimationStart(Animator animator) {} - - @Override - public void onAnimationCancel(Animator animator) {} - - @Override - public void onAnimationRepeat(Animator animator) {} - }); - mAnimator.start(); - animY2.reverse(); - mExpanded = false; - } - - private ValueAnimator slideAnimator(int start, int end) { - - ValueAnimator animator = ValueAnimator.ofInt(start, end); - - animator.addUpdateListener(valueAnimator -> { - int value = (Integer) valueAnimator.getAnimatedValue(); - ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams(); - layoutParams.height = value; - expandLayout.setLayoutParams(layoutParams); - }); - return animator; } } diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java index 32de917ed..a4eb642b5 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java @@ -6,7 +6,6 @@ import android.net.Uri; import android.widget.Toast; import com.topjohnwu.magisk.R; -import com.topjohnwu.magisk.utils.ByteArrayInOutStream; import com.topjohnwu.magisk.utils.Logger; import com.topjohnwu.magisk.utils.Shell; import com.topjohnwu.magisk.utils.Utils; diff --git a/app/src/main/java/com/topjohnwu/magisk/components/AlertDialogBuilder.java b/app/src/main/java/com/topjohnwu/magisk/components/AlertDialogBuilder.java index 5c764f1fd..d9ed1a229 100644 --- a/app/src/main/java/com/topjohnwu/magisk/components/AlertDialogBuilder.java +++ b/app/src/main/java/com/topjohnwu/magisk/components/AlertDialogBuilder.java @@ -9,7 +9,10 @@ import android.support.annotation.StyleRes; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; +import android.view.ViewStub; import android.widget.Button; +import android.widget.LinearLayout; import android.widget.TextView; import com.topjohnwu.magisk.R; @@ -19,10 +22,14 @@ import butterknife.ButterKnife; public class AlertDialogBuilder extends AlertDialog.Builder { + @BindView(R.id.button_panel) LinearLayout buttons; + @BindView(R.id.message_panel) LinearLayout messagePanel; + @BindView(R.id.negative) Button negative; @BindView(R.id.positive) Button positive; @BindView(R.id.neutral) Button neutral; @BindView(R.id.message) TextView messageView; + @BindView(R.id.custom_view) ViewStub custom; private DialogInterface.OnClickListener positiveListener; private DialogInterface.OnClickListener negativeListener; @@ -47,11 +54,30 @@ public class AlertDialogBuilder extends AlertDialog.Builder { negative.setVisibility(View.GONE); positive.setVisibility(View.GONE); neutral.setVisibility(View.GONE); + buttons.setVisibility(View.GONE); + messagePanel.setVisibility(View.GONE); + } + + @Override + public AlertDialog.Builder setView(int layoutResId) { + custom.setLayoutResource(layoutResId); + custom.inflate(); + return this; + } + + @Override + public AlertDialog.Builder setView(View view) { + ViewGroup parent = (ViewGroup) custom.getParent(); + int idx = parent.indexOfChild(custom); + parent.removeView(custom); + parent.addView(view, idx); + return this; } @Override public AlertDialog.Builder setMessage(@Nullable CharSequence message) { messageView.setText(message); + messagePanel.setVisibility(View.VISIBLE); return this; } @@ -62,6 +88,7 @@ public class AlertDialogBuilder extends AlertDialog.Builder { @Override public AlertDialog.Builder setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener) { + buttons.setVisibility(View.VISIBLE); positive.setVisibility(View.VISIBLE); positive.setText(text); positiveListener = listener; @@ -80,6 +107,7 @@ public class AlertDialogBuilder extends AlertDialog.Builder { @Override public AlertDialog.Builder setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener) { + buttons.setVisibility(View.VISIBLE); negative.setVisibility(View.VISIBLE); negative.setText(text); negativeListener = listener; @@ -98,6 +126,7 @@ public class AlertDialogBuilder extends AlertDialog.Builder { @Override public AlertDialog.Builder setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener) { + buttons.setVisibility(View.VISIBLE); neutral.setVisibility(View.VISIBLE); neutral.setText(text); neutralListener = listener; diff --git a/app/src/main/java/com/topjohnwu/magisk/components/MarkDownWindow.java b/app/src/main/java/com/topjohnwu/magisk/components/MarkDownWindow.java new file mode 100644 index 000000000..ec16d9a6f --- /dev/null +++ b/app/src/main/java/com/topjohnwu/magisk/components/MarkDownWindow.java @@ -0,0 +1,27 @@ +package com.topjohnwu.magisk.components; + +import android.content.Context; +import android.support.v7.app.AlertDialog; + +import com.topjohnwu.magisk.R; +import com.topjohnwu.magisk.utils.Logger; + +import us.feras.mdv.MarkdownView; + +public class MarkDownWindow { + + public MarkDownWindow(String title, String url, Context context) { + AlertDialog.Builder alert = new AlertDialogBuilder(context); + alert.setTitle(title); + + Logger.dev("WebView: URL = " + url); + + MarkdownView md = new MarkdownView(context); + md.loadMarkdownFile(url); + + alert.setView(md); + alert.setNegativeButton(R.string.close, (dialog, id) -> dialog.dismiss()); + alert.show(); + } + +} diff --git a/app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java b/app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java index 4179c75c2..aea90c1e8 100644 --- a/app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java +++ b/app/src/main/java/com/topjohnwu/magisk/module/BaseModule.java @@ -9,8 +9,7 @@ import java.util.List; public abstract class BaseModule implements Comparable { - protected String mId, mName, mVersion, mAuthor, mDescription, mSupportUrl, mDonateUrl; - protected boolean mIsCacheModule = false; + protected String mId, mName, mVersion, mAuthor, mDescription; protected int mVersionCode = 0; protected void parseProps(List props) throws CacheModException { parseProps(props.toArray(new String[props.size()])); } @@ -48,21 +47,14 @@ public abstract class BaseModule implements Comparable { case "description": this.mDescription = prop[1]; break; - case "support": - this.mSupportUrl = prop[1]; - break; - case "donate": - this.mDonateUrl = prop[1]; - break; case "cacheModule": - this.mIsCacheModule = Boolean.parseBoolean(prop[1]); + if (Boolean.parseBoolean(prop[1])) + throw new CacheModException(mId); break; default: break; } } - if (mIsCacheModule) - throw new CacheModException(mId); } public String getName() { @@ -77,7 +69,9 @@ public abstract class BaseModule implements Comparable { return mAuthor; } - public String getId() {return mId; } + public String getId() { + return mId; + } public String getDescription() { return mDescription; @@ -87,14 +81,6 @@ public abstract class BaseModule implements Comparable { return mVersionCode; } - public String getDonateUrl() { - return mDonateUrl; - } - - public String getSupportUrl() { - return mSupportUrl; - } - public static class CacheModException extends Exception { public CacheModException(String id) { Logger.error("Cache mods are no longer supported! id: " + id); diff --git a/app/src/main/java/com/topjohnwu/magisk/module/Repo.java b/app/src/main/java/com/topjohnwu/magisk/module/Repo.java index 17310e5b5..2ce680196 100644 --- a/app/src/main/java/com/topjohnwu/magisk/module/Repo.java +++ b/app/src/main/java/com/topjohnwu/magisk/module/Repo.java @@ -42,8 +42,6 @@ public class Repo extends BaseModule { public void update(Date lastUpdate) throws CacheModException { Logger.dev("Repo: Local: " + mLastUpdate + " Remote: " + lastUpdate); - if (mIsCacheModule) - throw new CacheModException(mId); if (lastUpdate.after(mLastUpdate)) { mLastUpdate = lastUpdate; update(); @@ -75,6 +73,10 @@ public class Repo extends BaseModule { return String.format(FILE_URL, repoName, "module.prop"); } + public String getDetailUrl() { + return String.format(FILE_URL, repoName, "README.md"); + } + public Date getLastUpdate() { return mLastUpdate; } diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/WebWindow.java b/app/src/main/java/com/topjohnwu/magisk/utils/WebWindow.java deleted file mode 100644 index a713f9198..000000000 --- a/app/src/main/java/com/topjohnwu/magisk/utils/WebWindow.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.topjohnwu.magisk.utils; - -import android.content.Context; -import android.support.v7.app.AlertDialog; -import android.webkit.WebResourceRequest; -import android.webkit.WebView; -import android.webkit.WebViewClient; - -import com.topjohnwu.magisk.components.AlertDialogBuilder; - -public class WebWindow { - -public WebWindow(String title, String url, Context context) { - AlertDialog.Builder alert = new AlertDialogBuilder(context); - alert.setTitle(title); - - Logger.dev("WebView: URL = " + url); - - WebView wv = new WebView(context); - wv.loadUrl(url); - wv.setWebViewClient(new WebViewClient() { - @Override - public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { - view.loadUrl(url); - return true; - } - }); - - alert.setView(wv); - alert.setNegativeButton("Close", (dialog, id) -> dialog.dismiss()); - alert.show(); -} - -} diff --git a/app/src/main/jni/jni_glue.c b/app/src/main/jni/jni_glue.c index 512cf503d..fceb89675 100644 --- a/app/src/main/jni/jni_glue.c +++ b/app/src/main/jni/jni_glue.c @@ -4,9 +4,7 @@ #include #include -#include #include -#include #include #include "zipadjust.h" diff --git a/app/src/main/res/drawable/ic_changelog.xml b/app/src/main/res/drawable/ic_changelog.xml deleted file mode 100644 index df99d5310..000000000 --- a/app/src/main/res/drawable/ic_changelog.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/app/src/main/res/layout/alert_dialog.xml b/app/src/main/res/layout/alert_dialog.xml index 14eadeef8..2bed6a9db 100644 --- a/app/src/main/res/layout/alert_dialog.xml +++ b/app/src/main/res/layout/alert_dialog.xml @@ -6,6 +6,7 @@ android:layout_height="wrap_content"> @@ -31,8 +32,14 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_marginTop="0dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textIsSelectable="false" /> - + - + - - - + - + + + diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 87702a526..9b53b635d 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -35,7 +35,6 @@ يتوفر تحديث مثبت غير مثبت - التغييرات حفظ إلى بطاقة ذاكرة SD @@ -65,8 +64,6 @@ تنزيل وتثبيت خطأ تنزيل الملف خطأ في التثبيت! - الملف المضغوط وضع في %1$s - التثبيت في الإسترداد يدوياً الملف المضغوط ليس إضافة Magisk!! التثبيت نجح! هل تريد إعادة التشغيل الآن؟ diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a1ccf9bef..1734916f9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -65,7 +65,6 @@ Update verfügbar Installiert Nicht installiert - Änderungen Log auf SD-Karte speichern @@ -97,8 +96,6 @@ Zu \"Installieren\" wechseln Fehler beim Herunterladen der Datei Fehler bei der Installation! - Zip-Datei unter %1$s gespeichert - Manuell mittels Recovery flashen Die Zip-Datei ist kein Magisk-Modul! Installation erfolgreich! Möchtest du jetzt neustarten? @@ -114,7 +111,7 @@ Neues Magisk-Update verfügbar! Magisk-Update v%1$.1f ist verfügbar, möchtest du es installieren? Neustarten, um die Änderungen anzuwenden - Änderungen anzeigen + Änderungen Repo-Cache gelöscht Diese App benutzt SafetyNet, welches standardmäßig von Magisk Hide gehandhabt Starte Magisk Hide… diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d0f692e99..65879335d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -35,7 +35,6 @@ Actualización disponible Instalado No Instalado - Cambios Salvar a SD @@ -65,7 +64,6 @@ Descargar e instalar Error descargando fichero ¡Error en la instalación! - Error flasheando fichero, zip colocado en %1$s\nFlashear manualmente desde recovery ¡El zip no es un Módulo Magisk! ¡Instalación correcta! ¿Deseas reiniciar ahora? diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 088b0abaf..3d1e2ddac 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -60,7 +60,6 @@ Aggiornamento disponibile Installato Non installato - Changelog Salva nella SD @@ -90,7 +89,6 @@ Scarica e installa Errore nel download del file Errore di installazione! - Errore nel flash del file, il file zip è in %1$s\nFlash esegui il flash manuale Lo zip non è un Modulo Magisk!! Installazione completata Vuoi riavviare ora? diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 266752319..a399a7928 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -33,7 +33,6 @@ Update Beschikbaar Geïnstalleerd Niet geïnstalleerd - Changelog Opslaan op SD-kaart @@ -63,7 +62,6 @@ Downloaden en installeren Er is een fout opgetreden bij het downloaden van het bestand Er is een fout opgetreden in de installatie - Er is een fout opgetreden in het flashen van het bestand. Het zip bestand is opgeslagen in %1$s\nFlash het handmatig in recovery modus. Zip bestand is geen Magisk Module! Installatie succesvol! Wilt u nu rebooten? diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 29590d946..7cbd8f716 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -64,7 +64,6 @@ Aktualizacja jest dostępna Zainstalowany Nie zainstalowany - Zmiany Zapisz na SD @@ -96,8 +95,6 @@ Idź do sekcji \"Instalacja\" Błąd pobierania pliku Błąd instalacji! - Plik zip umieszczony w %1$s - Zainstaluj go ręcznie w recovery Ten zip nie jest Modułem Magisk!! Instalacja zakończona powodzeniem! Czy chcesz teraz ponownie uruchomić? @@ -113,7 +110,7 @@ Nowa Wersja Magisk Dostępna! Magisk v%1$.1f jest dostępny, chcesz zainstalować? Uruchom ponownie, aby zastosować ustawienia - Sprawdź zmiany + Zmiany Cache repozytorium wyczyszczone Ta aplikacja wykorzystuje SafetyNet\nJest już domyślnie obsługiwana przez MagiskHide Uruchamianie MagiskHide … diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index c8e782c08..4c1b31ad9 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -61,7 +61,6 @@ Atualização disponível Instalado Não Instalado - Registro de mudança Salvar no SD @@ -93,8 +92,6 @@ Ir na seção \"Instalar\" Erro ao baixar o arquivo Erro na instalação! - Erro ao flashear o arquivo, arquivo zip colocado em %1$s - Flashear isto na recuperação manualmente O zip não é um Módulo Magisk!! Instalação bem-sucedida! Você quer reiniciar agora? @@ -110,7 +107,7 @@ Nova atualização do Magisk disponível! Magisk v%1$.1f Atualização está pronta, você quer instalar? Reinicie para aplicar configurações - Verificar as notas da atualização + Notas da atualização Cache do Repo. limpado Este aplicativo usa SafetyNet\nJá manipulado pelo MagiskHide por padrão Iniciando MagiskHide … diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b9d777b5f..bb9cb8ac0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -59,7 +59,6 @@ Доступно обновление Установлен Не установлен - Изменения Сохранить на SD-карту @@ -91,8 +90,7 @@ Перейти в раздел «Установка» Ошибка при скачивании файла Ошибка при установке! - Zip-файл помещён в %1$s - Прошейте руками через рекавериа + а Этот архив не содержит модуль Magisk!! Установка успешна! Вы хотите перезагрузиться? @@ -108,7 +106,7 @@ Доступно обновление Magisk! Вышел Magisk версии v%1$.1f, установить? Перезагрузитесь для применения изменений - Посмотреть примечания к выпуску + Примечания к выпуску Кэш репозиториев очищен Это приложение использует SafetyNet\nУже обработано MagiskHide по умолчанию Запуск MagiskHide… diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index efbcf185f..6b9baf7cd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -61,7 +61,6 @@ 可更新 已安装 未安装 - 更新日志 保存到 SD 卡 @@ -93,8 +92,6 @@ 前往“安装”界面 下载文件时出错 安装出错! - Zip 文件已保存至 %1$s - 请在 Recovery 中手动刷入 此 zip 文件不是 Magisk 模块!! 安装成功! 你想要立即重启吗? @@ -110,7 +107,7 @@ Magisk 可更新! Magisk 已有新版本 v%1$.1f,你想要安装吗? 重启以应用设置 - 查看发布说明 + 发布说明 资源库缓存已清除 此应用使用了 SafetyNet\n已默认由 MagiskHide 处理 正在启动 MagiskHide … diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 2f67c4f6b..5f00251c2 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -10,6 +10,5 @@ 10dp 300dip 3dp - 10dp 50dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index db04bc1ff..faaccd30a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,7 +64,6 @@ Update Available Installed Not Installed - Changelog Save to SD @@ -91,14 +90,13 @@ No thanks Yes OK + Close Install %1$s Do you want to install %1$s ? Download & install Go to \"Install\" section Error downloading file Installation error! - Zip file placed in %1$s - Flash it in recovery manually The zip is not a Magisk Module!! Installation succeeded! Do you want to reboot now? @@ -114,7 +112,7 @@ New Magisk Update Available! Magisk v%1$.1f update is live, do you want to install? Reboot to apply settings - Check release notes + Release notes Repo cache cleared This app uses SafetyNet\nAlready handled by MagiskHide by default Starting MagiskHide …