diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 7e5cb63e07..d6771d8979 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -378,7 +378,6 @@ dependencies { implementation "cn.hutool:hutool-core:5.8.42" implementation "cn.hutool:hutool-crypto:5.8.42" implementation 'cn.hutool:hutool-http:5.8.42' - implementation "com.jakewharton:process-phoenix:3.0.0" // openpgp implementation project(":openpgp-api") diff --git a/TMessagesProj/src/main/AndroidManifest.xml b/TMessagesProj/src/main/AndroidManifest.xml index f4c625a5a0..bb4535cd26 100644 --- a/TMessagesProj/src/main/AndroidManifest.xml +++ b/TMessagesProj/src/main/AndroidManifest.xml @@ -537,6 +537,11 @@ android:taskAffinity="${applicationId}.voip_feedback" android:excludeFromRecents="true" android:theme="@style/Theme.TMessages.TransparentWithAlerts"/> + dialogIds, int action, Object infoObj undoImageView.setVisibility(GONE); undoTextView.setText(LocaleController.getString("ApplyTheme", R.string.ApplyTheme)); - currentCancelRunnable = () -> ProcessPhoenix.triggerRebirth(getContext(), new Intent(getContext(), LaunchActivity.class)); + currentCancelRunnable = AppRestartHelper::triggerRebirth; } else if (isTooltipAction()) { CharSequence infoText = ""; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index faccc55d2e..3e59582828 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java @@ -105,7 +105,6 @@ import com.android.billingclient.api.ProductDetails; import com.android.billingclient.api.Purchase; import com.android.billingclient.api.QueryProductDetailsParams; -import com.jakewharton.processphoenix.ProcessPhoenix; //import com.google.android.gms.auth.api.signin.GoogleSignIn; //import com.google.android.gms.auth.api.signin.GoogleSignInAccount; //import com.google.android.gms.auth.api.signin.GoogleSignInClient; @@ -229,6 +228,7 @@ import tw.nekomimi.nekogram.BackButtonMenuRecent; import tw.nekomimi.nekogram.NekoConfig; import tw.nekomimi.nekogram.NekoXConfig; +import tw.nekomimi.nekogram.helpers.AppRestartHelper; import tw.nekomimi.nekogram.helpers.PasscodeHelper; import tw.nekomimi.nekogram.ui.BottomBuilder; import tw.nekomimi.nekogram.ui.EditTextAutoFill; @@ -10672,7 +10672,7 @@ public void afterTextChanged(Editable s) { restart.setTitle(LocaleController.getString(R.string.NekoX)); restart.setMessage(LocaleController.getString(R.string.RestartAppToTakeEffect)); restart.setPositiveButton(LocaleController.getString(R.string.OK), (__, ___) -> { - ProcessPhoenix.triggerRebirth(getContext(), new Intent(getContext(), LaunchActivity.class)); + AppRestartHelper.triggerRebirth(); }); restart.show(); return Unit.INSTANCE; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 26c9e8834e..f3ecdcf979 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -125,8 +125,6 @@ import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; -import com.jakewharton.processphoenix.ProcessPhoenix; - import org.telegram.PhoneFormat.PhoneFormat; import org.telegram.messenger.AccountInstance; import org.telegram.messenger.AndroidUtilities; diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/AppRestartHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/AppRestartHelper.java new file mode 100644 index 0000000000..6a5f0b8413 --- /dev/null +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/AppRestartHelper.java @@ -0,0 +1,47 @@ +package tw.nekomimi.nekogram.helpers; + +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; +import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.Process; + +import org.telegram.messenger.ApplicationLoader; +import org.telegram.ui.LaunchActivity; + +import java.util.ArrayList; +import java.util.Arrays; + +public final class AppRestartHelper extends Activity { + private static final String KEY_RESTART_INTENTS = "nagram_restart_intents"; + private static final String KEY_MAIN_PROCESS_PID = "nagram_main_process_pid"; + + public static void triggerRebirth() { + Context context = ApplicationLoader.applicationContext; + triggerRebirth(context, new Intent(context, LaunchActivity.class)); + } + + public static void triggerRebirth(Context context, Intent... nextIntents) { + nextIntents[0].addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK); + Intent intent = new Intent(context, AppRestartHelper.class); + intent.addFlags(FLAG_ACTIVITY_NEW_TASK); + intent.putParcelableArrayListExtra(KEY_RESTART_INTENTS, new ArrayList<>(Arrays.asList(nextIntents))); + intent.putExtra(KEY_MAIN_PROCESS_PID, Process.myPid()); + context.startActivity(intent); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Process.killProcess(getIntent().getIntExtra(KEY_MAIN_PROCESS_PID, -1)); + ArrayList intents = getIntent().getParcelableArrayListExtra(KEY_RESTART_INTENTS); + if (intents != null) { + startActivities(intents.toArray(new Intent[0])); + finish(); + Runtime.getRuntime().exit(0); + } + } +} diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/CloudSettingsHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/CloudSettingsHelper.java index db93e7f7cc..2d1057ae9b 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/CloudSettingsHelper.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/CloudSettingsHelper.java @@ -2,7 +2,6 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Handler; @@ -17,8 +16,6 @@ import androidx.core.graphics.ColorUtils; -import com.jakewharton.processphoenix.ProcessPhoenix; - import org.json.JSONException; import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.ApplicationLoader; @@ -36,7 +33,6 @@ import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.ScaleStateListAnimator; import org.telegram.ui.Components.TextViewSwitcher; -import org.telegram.ui.LaunchActivity; import org.telegram.ui.Stories.recorder.ButtonWithCounterView; import java.util.Calendar; @@ -153,7 +149,7 @@ public void showDialog(BaseFragment parentFragment) { restart.setTitle(LocaleController.getString(R.string.NekoX)); restart.setMessage(LocaleController.getString(R.string.RestartAppToTakeEffect)); restart.setPositiveButton(LocaleController.getString(R.string.OK), (__, ___) -> { - ProcessPhoenix.triggerRebirth(context, new Intent(context, LaunchActivity.class)); + AppRestartHelper.triggerRebirth(); }); restart.show(); } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java index 923ac8d954..df61e444d6 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java @@ -5,7 +5,6 @@ import android.app.Activity; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.view.View; @@ -15,7 +14,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; -import com.jakewharton.processphoenix.ProcessPhoenix; import org.json.JSONException; import org.json.JSONObject; @@ -29,7 +27,6 @@ import org.telegram.ui.Cells.TextCell; import org.telegram.ui.Cells.TextSettingsCell; import org.telegram.ui.DocumentSelectActivity; -import org.telegram.ui.LaunchActivity; import java.io.File; import java.text.DateFormat; @@ -40,6 +37,7 @@ import kotlin.text.StringsKt; import tw.nekomimi.nekogram.DatacenterActivity; +import tw.nekomimi.nekogram.helpers.AppRestartHelper; import tw.nekomimi.nekogram.helpers.CloudSettingsHelper; import tw.nekomimi.nekogram.helpers.PasscodeHelper; import tw.nekomimi.nekogram.utils.AlertUtil; @@ -72,6 +70,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity { private int settingsRow; private int importSettingsRow; private int exportSettingsRow; + private int resetSettingsRow; private int settings2Row; @Override @@ -114,6 +113,18 @@ protected void onItemClick(View view, int position, float x, float y) { } else if (position == importSettingsRow) { DocumentSelectActivity activity = getDocumentSelectActivity(getParentActivity()); presentFragment(activity); + } else if (position == resetSettingsRow) { + AlertUtil.showConfirm(getParentActivity(), + LocaleController.getString(R.string.ResetSettingsAlert), + R.drawable.msg_reset, + LocaleController.getString(R.string.Reset), + true, + () -> { + ApplicationLoader.applicationContext.getSharedPreferences("nekocloud", Activity.MODE_PRIVATE).edit().clear().commit(); + ApplicationLoader.applicationContext.getSharedPreferences("nekox_config", Activity.MODE_PRIVATE).edit().clear().commit(); + ApplicationLoader.applicationContext.getSharedPreferences("nkmrcfg", Activity.MODE_PRIVATE).edit().clear().commit(); + AppRestartHelper.triggerRebirth(); + }); } else if (position == exportSettingsRow) { backupSettings(); } @@ -163,6 +174,7 @@ protected void updateRows() { settingsRow = addRow("settings"); importSettingsRow = addRow("importSettings"); exportSettingsRow = addRow("exportSettings"); + resetSettingsRow = addRow("resetSettings"); settings2Row = addRow(); } @@ -193,6 +205,8 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi textCell.setText(LocaleController.getString(R.string.ImportSettings), divider); } else if (position == exportSettingsRow) { textCell.setText(LocaleController.getString(R.string.BackupSettings), divider); + } else if (position == resetSettingsRow) { + textCell.setText(LocaleController.getString(R.string.ResetSettings), divider); } break; } @@ -398,7 +412,7 @@ public static void importSettingsConfirmed(Context context, File settingsFile) { AlertDialog restart = new AlertDialog(context, 0); restart.setTitle(LocaleController.getString(R.string.NekoX)); restart.setMessage(LocaleController.getString(R.string.RestartAppToTakeEffect)); - restart.setPositiveButton(LocaleController.getString(R.string.OK), (__, ___) -> ProcessPhoenix.triggerRebirth(context, new Intent(context, LaunchActivity.class))); + restart.setPositiveButton(LocaleController.getString(R.string.OK), (__, ___) -> AppRestartHelper.triggerRebirth()); restart.show(); } catch (Exception e) { AlertUtil.showSimpleAlert(context, e); diff --git a/TMessagesProj/src/main/res/values-es-rES/strings_na.xml b/TMessagesProj/src/main/res/values-es-rES/strings_na.xml index 826a840c23..da627e36c7 100644 --- a/TMessagesProj/src/main/res/values-es-rES/strings_na.xml +++ b/TMessagesProj/src/main/res/values-es-rES/strings_na.xml @@ -59,6 +59,8 @@ Cambio rápido a anónimo Si eres el dueño del grupo Tiempo de ocultación real para stickers + Restablecer Ajustes + ¿Está seguro de que desea restablecer todos los N-Ajustes? Ocultar el título Ignorar contador de carpetas Enviar sin markdown diff --git a/TMessagesProj/src/main/res/values-in-rID/strings_na.xml b/TMessagesProj/src/main/res/values-in-rID/strings_na.xml index 12db12c7e2..5756d90293 100644 --- a/TMessagesProj/src/main/res/values-in-rID/strings_na.xml +++ b/TMessagesProj/src/main/res/values-in-rID/strings_na.xml @@ -59,6 +59,8 @@ Quick toggle anonymous If you\'re owner of the group Real hide time for stickers + Atur Ulang Pengaturan + Apakah Anda yakin ingin mengatur ulang semua Pengaturan-N? Hide Title Ignore Folder Count Send without markdown diff --git a/TMessagesProj/src/main/res/values-it-rIT/strings_na.xml b/TMessagesProj/src/main/res/values-it-rIT/strings_na.xml index d415bd0761..79d8bd6554 100644 --- a/TMessagesProj/src/main/res/values-it-rIT/strings_na.xml +++ b/TMessagesProj/src/main/res/values-it-rIT/strings_na.xml @@ -59,6 +59,8 @@ Attiva/disattiva velocemente anonimo Se sei proprietario del gruppo Tempo di nascondersi reale per gli adesivi + Ripristina le Impostazioni + Sei sicuro di voler ripristinare tutte le impostazioni? Nascondi Titolo Ignora Conteggio Cartelle Invia senza markdown diff --git a/TMessagesProj/src/main/res/values-ja-rJP/strings_na.xml b/TMessagesProj/src/main/res/values-ja-rJP/strings_na.xml index 2d85e514f0..7177fedba6 100644 --- a/TMessagesProj/src/main/res/values-ja-rJP/strings_na.xml +++ b/TMessagesProj/src/main/res/values-ja-rJP/strings_na.xml @@ -59,6 +59,8 @@ クイック匿名の切り替え あなたがグループの所有者である場合 ステッカーをリアルタイムに隠す + 設定をリセット + 「N-設定」をリセットしますか? タイトルを隠す フォルダ数を無視 マークダウンなしで送信 diff --git a/TMessagesProj/src/main/res/values-pl-rPL/strings_na.xml b/TMessagesProj/src/main/res/values-pl-rPL/strings_na.xml index 63e585d60e..8ba2fb1376 100644 --- a/TMessagesProj/src/main/res/values-pl-rPL/strings_na.xml +++ b/TMessagesProj/src/main/res/values-pl-rPL/strings_na.xml @@ -59,6 +59,8 @@ Szybkie przełączanie anonimowe Jeśli jesteś właścicielem grupy Prawdziwy czas ukrycia naklejek + Resetuj ustawienia + Czy na pewno chcesz zresetować wszystkie ustawienia-N? Ukryj tytuł Ignoruj liczbę folderów Wyślij bez markdown diff --git a/TMessagesProj/src/main/res/values-pt-rBR/strings_na.xml b/TMessagesProj/src/main/res/values-pt-rBR/strings_na.xml index 8318e61dd2..2e09f85e5e 100644 --- a/TMessagesProj/src/main/res/values-pt-rBR/strings_na.xml +++ b/TMessagesProj/src/main/res/values-pt-rBR/strings_na.xml @@ -59,6 +59,8 @@ Alternador rápido anônimo Se você é o proprietário do grupo Ocultar tempo real para adesivos + Redefinir configurações + Tem certeza de que deseja redefinir todas as N-Configurações? Ocultar o título Ignorar contador de pastas Enviar sem markdown diff --git a/TMessagesProj/src/main/res/values-ru-rRU/strings_na.xml b/TMessagesProj/src/main/res/values-ru-rRU/strings_na.xml index 26208ccbb6..f347027832 100644 --- a/TMessagesProj/src/main/res/values-ru-rRU/strings_na.xml +++ b/TMessagesProj/src/main/res/values-ru-rRU/strings_na.xml @@ -59,6 +59,8 @@ Быстрое переключение анонимности Если вы владелец группы. Скрыть время для стикеров + Сброс настроек + Вы уверены, что хотите сбросить все «Настройки N»? Скрыть заголовок Игнорировать количество папок Отправить без разметки diff --git a/TMessagesProj/src/main/res/values-tr-rTR/strings_na.xml b/TMessagesProj/src/main/res/values-tr-rTR/strings_na.xml index a772d9423e..71f9931917 100644 --- a/TMessagesProj/src/main/res/values-tr-rTR/strings_na.xml +++ b/TMessagesProj/src/main/res/values-tr-rTR/strings_na.xml @@ -59,6 +59,8 @@ Anonimlere hızlı geçiş Grubun sahibiyseniz Çıkartmalar için gerçek saklanma süresi + Ayarları Sıfırla + Tüm N-Ayarlarını sıfırlamak istediğinizden emin misiniz? Başlığı Gizle Klasör Sayısını Yoksay İşaretlemeden gönder diff --git a/TMessagesProj/src/main/res/values-uk-rUA/strings_na.xml b/TMessagesProj/src/main/res/values-uk-rUA/strings_na.xml index ce1b72cab7..a5e606b230 100644 --- a/TMessagesProj/src/main/res/values-uk-rUA/strings_na.xml +++ b/TMessagesProj/src/main/res/values-uk-rUA/strings_na.xml @@ -59,6 +59,8 @@ Швидкий перемикач анонімного режиму Якщо ви власник групи Реальний час приховування для наліпок + Скидання налаштувань + Ви дійсно бажаєте скинути всі N-Налаштування? Приховати заголовок Ігнорувати кількість папок Відправити без markdown diff --git a/TMessagesProj/src/main/res/values-zh-rCN/strings_na.xml b/TMessagesProj/src/main/res/values-zh-rCN/strings_na.xml index 0d748a6233..6068b37df5 100644 --- a/TMessagesProj/src/main/res/values-zh-rCN/strings_na.xml +++ b/TMessagesProj/src/main/res/values-zh-rCN/strings_na.xml @@ -59,6 +59,8 @@ 快速切换匿名发言 如果你是群组的所有者的话 真正的隐藏贴纸发送时间 + 重置设置 + 您确定要重置所有 N-设置 吗? 隐藏标题和头像 忽略文件夹标签上的未读计数 禁用 Markdown diff --git a/TMessagesProj/src/main/res/values-zh-rTW/strings_na.xml b/TMessagesProj/src/main/res/values-zh-rTW/strings_na.xml index d0802ea514..8b3f8d1805 100644 --- a/TMessagesProj/src/main/res/values-zh-rTW/strings_na.xml +++ b/TMessagesProj/src/main/res/values-zh-rTW/strings_na.xml @@ -59,6 +59,8 @@ 快速切換匿名發言 如果你是頻道的持有者則可以使用頻道匿名發言 真正的隱藏貼圖傳送時間 + 重置設定 + 您確定要重置所有 N-設定 嗎? 隱藏標題和頭像 忽略資料夾標籤上的未讀計數 禁用 Markdown diff --git a/TMessagesProj/src/main/res/values/strings_na.xml b/TMessagesProj/src/main/res/values/strings_na.xml index 7a742003f0..f2e6ba4ee3 100644 --- a/TMessagesProj/src/main/res/values/strings_na.xml +++ b/TMessagesProj/src/main/res/values/strings_na.xml @@ -59,6 +59,8 @@ Quick toggle anonymous If you\'re owner of the group Real hide time for stickers + Reset Settings + Are you sure you want to reset all N-Settings? Hide Title Ignore Folder Count Send without markdown