diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/AboutFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/AboutFragment.java index b36805509..54d9a2793 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/AboutFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/AboutFragment.java @@ -123,21 +123,6 @@ public class AboutFragment extends SettingsBaseFragment{ if (list.findViewHolderForAdapterPosition(items.indexOf(checkForUpdateItem)) instanceof TextViewHolder tvh) tvh.rebind(); } - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - if (GithubSelfUpdater.needSelfUpdating()) { - E.register(this); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (GithubSelfUpdater.needSelfUpdating()) - E.unregister(this); - } - private void clearImageCache(){ MastodonAPIController.runInBackground(()->{ Activity activity=getActivity(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBaseFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBaseFragment.java index a25c36255..67a68d06c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBaseFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBaseFragment.java @@ -33,6 +33,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import org.joinmastodon.android.DomainManager; +import org.joinmastodon.android.E; import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.MastodonApp; import org.joinmastodon.android.R; @@ -93,6 +94,9 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple instanceName = UiUtils.getInstanceName(accountID); DomainManager.getInstance().setCurrentDomain(session.domain + "/settings"); + if (GithubSelfUpdater.needSelfUpdating()) + E.register(this); + addItems(items); title = getArguments().getString("title", getTitle().toString()); items.add(0, new GiantHeaderItem(title)); @@ -506,6 +510,7 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple } protected void restartActivityToApplyNewTheme(){ + onDestroy(); getActivity().recreate(); } @@ -515,6 +520,10 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple if(needUpdateNotificationSettings && PushSubscriptionManager.arePushNotificationsAvailable()){ AccountSessionManager.getInstance().getAccount(accountID).getPushSubscriptionManager().updatePushSettings(pushSubscription); } + + if (GithubSelfUpdater.needSelfUpdating()) + E.unregister(this); + if(needAppRestart) UiUtils.restartApp(); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsMainFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsMainFragment.java index 3e802edbf..397260aa1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsMainFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsMainFragment.java @@ -59,19 +59,4 @@ public class SettingsMainFragment extends SettingsBaseFragment { Toast.makeText(getActivity(), getString(R.string.mo_update_available, GithubSelfUpdater.getInstance().getUpdateInfo().version), Toast.LENGTH_SHORT).show(); } } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - if (GithubSelfUpdater.needSelfUpdating()) { - E.register(this); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (GithubSelfUpdater.needSelfUpdating()) - E.unregister(this); - } }