From ec1e8505492be71321720ea157e4b1b206f1a39e Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 16:51:31 +0200 Subject: [PATCH 1/7] feat(settings/version): tap to copy version --- .../org/joinmastodon/android/fragments/SettingsFragment.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 42b929480..cf0bf62d4 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -78,6 +78,7 @@ import me.grishka.appkit.utils.V; import me.grishka.appkit.views.UsableRecyclerView; public class SettingsFragment extends MastodonToolbarFragment{ + private View view; private UsableRecyclerView list; private ArrayList items=new ArrayList<>(); private ThemeItem themeItem; @@ -460,7 +461,8 @@ public class SettingsFragment extends MastodonToolbarFragment{ })); } - items.add(new FooterItem(getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE))); + String version = getContext().getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); + items.add(new TextItem(version, () -> UiUtils.copyText(view, version))); } private void updatePublishText(Button btn) { @@ -519,6 +521,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ @Override public void onViewCreated(View view, Bundle savedInstanceState){ super.onViewCreated(view, savedInstanceState); + this.view = view; if(GithubSelfUpdater.needSelfUpdating()) E.register(this); } From 98e24a528599a82b2e0fe0abe48d4dc799e23c06 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:13:26 +0200 Subject: [PATCH 2/7] feat(settings/debug): add copy pref debug action --- .../android/fragments/SettingsFragment.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index cf0bf62d4..ee7d84ca8 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -10,6 +10,7 @@ import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.util.LruCache; import android.util.TypedValue; import android.view.Gravity; @@ -62,6 +63,7 @@ import org.joinmastodon.android.updater.GithubSelfUpdater; import org.parceler.Parcels; import java.util.ArrayList; +import java.util.Map; import java.util.function.Consumer; import androidx.annotation.DrawableRes; @@ -446,7 +448,6 @@ public class SettingsFragment extends MastodonToolbarFragment{ GlobalUserPreferences.recentEmojis.clear(); GlobalUserPreferences.save(); })); -// items.add(new TextItem(R.string.log_out, this::confirmLogOut)); if(BuildConfig.DEBUG){ items.add(new RedHeaderItem("Debug options")); @@ -459,6 +460,13 @@ public class SettingsFragment extends MastodonToolbarFragment{ args.putBoolean("debug", true); Nav.goClearingStack(getActivity(), AccountActivationFragment.class, args); })); + + items.add(new TextItem("Copy preferences", ()->{ + StringBuilder prefBuilder = new StringBuilder(); + GlobalUserPreferences.load(); + GlobalUserPreferences.getPrefs().getAll().forEach((key, value) -> prefBuilder.append(key).append(": ").append(value).append('\n')); + UiUtils.copyText(view, prefBuilder.toString()); + })); } String version = getContext().getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); From b540729f6b82c5e0c0ac7eb0eb977aa0b86ec1f4 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:18:33 +0200 Subject: [PATCH 3/7] feat(settings/debug): add action to open dev settings --- .../org/joinmastodon/android/fragments/SettingsFragment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index ee7d84ca8..4ddbba337 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -9,6 +9,7 @@ import android.graphics.Canvas; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.util.LruCache; @@ -43,6 +44,7 @@ import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.GlobalUserPreferences.ColorPreference; import org.joinmastodon.android.MainActivity; import org.joinmastodon.android.MastodonApp; +import org.joinmastodon.android.PushNotificationReceiver; import org.joinmastodon.android.R; import org.joinmastodon.android.api.MastodonAPIController; import org.joinmastodon.android.api.PushSubscriptionManager; @@ -451,6 +453,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ if(BuildConfig.DEBUG){ items.add(new RedHeaderItem("Debug options")); + items.add(new TextItem("Test e-mail confirmation flow", ()->{ AccountSession sess=AccountSessionManager.getInstance().getAccount(accountID); sess.activated=false; @@ -467,6 +470,8 @@ public class SettingsFragment extends MastodonToolbarFragment{ GlobalUserPreferences.getPrefs().getAll().forEach((key, value) -> prefBuilder.append(key).append(": ").append(value).append('\n')); UiUtils.copyText(view, prefBuilder.toString()); })); + + items.add(new TextItem("Open developer settings", ()-> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)))); } String version = getContext().getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); From 47a3834716ffa3221848056be48a32c0a6b1c155 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:23:41 +0200 Subject: [PATCH 4/7] =?UTF-8?q?fix(settings/debug):=20typo=20e-mail=20?= =?UTF-8?q?=E2=86=92=20E-Mail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/joinmastodon/android/fragments/SettingsFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 4ddbba337..6ef0c91f8 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -454,7 +454,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ if(BuildConfig.DEBUG){ items.add(new RedHeaderItem("Debug options")); - items.add(new TextItem("Test e-mail confirmation flow", ()->{ + items.add(new TextItem("Test E-Mail confirmation flow", ()->{ AccountSession sess=AccountSessionManager.getInstance().getAccount(accountID); sess.activated=false; sess.activationInfo=new AccountActivationInfo("test@email", System.currentTimeMillis()); From 6b8418845e42c717e2e7c7d5464e76bffa2005de Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:31:58 +0200 Subject: [PATCH 5/7] feat(settings/debug): add action to open app info --- .../org/joinmastodon/android/fragments/SettingsFragment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 6ef0c91f8..ec8a20504 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Rect; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.provider.Settings; @@ -471,6 +472,10 @@ public class SettingsFragment extends MastodonToolbarFragment{ UiUtils.copyText(view, prefBuilder.toString()); })); + items.add(new TextItem("Open App Info", () -> + getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + .setData(Uri.fromParts("package", getContext().getPackageName(), null)))) + ); items.add(new TextItem("Open developer settings", ()-> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)))); } From d256c759ee84144510f665ed6e1c030b22c96a24 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:36:52 +0200 Subject: [PATCH 6/7] feat(settings/debug): add open icon to external actions --- .../android/fragments/SettingsFragment.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index ec8a20504..0e9d8e815 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -474,9 +474,15 @@ public class SettingsFragment extends MastodonToolbarFragment{ items.add(new TextItem("Open App Info", () -> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - .setData(Uri.fromParts("package", getContext().getPackageName(), null)))) + .setData(Uri.fromParts("package", getContext().getPackageName(), null))), + R.drawable.ic_fluent_open_24_regular + ) + ); + + items.add(new TextItem("Open developer settings", + ()-> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)), + R.drawable.ic_fluent_open_24_regular) ); - items.add(new TextItem("Open developer settings", ()-> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)))); } String version = getContext().getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); @@ -908,6 +914,12 @@ public class SettingsFragment extends MastodonToolbarFragment{ this.onClick=onClick; } + public TextItem(String text, Runnable onClick, @DrawableRes int icon){ + this.text=text; + this.onClick=onClick; + this.icon=icon; + } + @Override public int getViewType(){ return 4; From bf4c9056742daff5d0b3251b8caccdda204694a8 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Thu, 20 Apr 2023 17:45:54 +0200 Subject: [PATCH 7/7] feat(settings/debug): add reset action --- .../joinmastodon/android/fragments/SettingsFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 0e9d8e815..bd0f17628 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -472,13 +472,19 @@ public class SettingsFragment extends MastodonToolbarFragment{ UiUtils.copyText(view, prefBuilder.toString()); })); + items.add(new TextItem("Reset preferences", ()->{ + GlobalUserPreferences.load(); + GlobalUserPreferences.getPrefs().edit().clear().commit(); + UiUtils.restartApp(); + }, R.drawable.ic_fluent_warning_24_regular)); + items.add(new TextItem("Open App Info", () -> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) .setData(Uri.fromParts("package", getContext().getPackageName(), null))), R.drawable.ic_fluent_open_24_regular ) ); - + items.add(new TextItem("Open developer settings", ()-> getContext().startActivity(new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)), R.drawable.ic_fluent_open_24_regular)