Loading app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +25 −10 Original line number Diff line number Diff line Loading @@ -76,6 +76,8 @@ import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsIntent; import androidx.core.app.ActivityOptionsCompat; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; Loading Loading @@ -646,6 +648,18 @@ public class Helper { if (url == null) { return; } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); boolean customTab = sharedpreferences.getBoolean(context.getString(R.string.SET_CUSTOM_TABS), true); if (customTab) { CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); int colorInt = ThemeHelper.getAttColor(context, R.attr.statusBar); CustomTabColorSchemeParams defaultColors = new CustomTabColorSchemeParams.Builder() .setToolbarColor(colorInt) .build(); builder.setDefaultColorSchemeParams(defaultColors); CustomTabsIntent customTabsIntent = builder.build(); customTabsIntent.launchUrl(context, Uri.parse(url)); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) { Loading @@ -658,6 +672,7 @@ public class Helper { Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show(); } } } /** * Transform URLs to privacy frontend Loading app/src/main/java/app/fedilab/android/ui/fragment/FragmentLoginMain.java +36 −7 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static app.fedilab.android.activities.LoginActivity.softwareLogin; import android.Manifest; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; Loading @@ -43,9 +44,12 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.widget.PopupMenu; import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsIntent; import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; Loading @@ -60,6 +64,7 @@ import app.fedilab.android.mastodon.client.entities.app.Account; import app.fedilab.android.mastodon.client.entities.app.InstanceSocial; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.helper.ZipHelper; import app.fedilab.android.mastodon.viewmodel.mastodon.AppsVM; import app.fedilab.android.mastodon.viewmodel.mastodon.InstanceSocialVM; Loading Loading @@ -214,6 +219,10 @@ public class FragmentLoginMain extends Fragment { menuInflater.inflate(R.menu.main_login, popupMenu.getMenu()); MenuItem adminTabItem = popupMenu.getMenu().findItem(R.id.action_request_admin); adminTabItem.setChecked(requestedAdmin); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean customTab = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_TABS), true); popupMenu.getMenu().findItem(R.id.action_custom_tabs).setChecked(customTab); popupMenu.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.action_proxy) { Loading Loading @@ -242,6 +251,13 @@ public class FragmentLoginMain extends Fragment { } else { proceed(); } } else if (itemId == R.id.action_custom_tabs) { boolean newValue = !item.isChecked(); item.setChecked(newValue); SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putBoolean(getString(R.string.SET_CUSTOM_TABS), newValue); editor.apply(); return false; } return false; }); Loading Loading @@ -291,6 +307,18 @@ public class FragmentLoginMain extends Fragment { client_idLogin = app.client_id; client_secretLogin = app.client_secret; String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, requestedAdmin); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean customTab = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_TABS), true); if (customTab) { CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); int colorInt = ThemeHelper.getAttColor(requireActivity(), R.attr.statusBar); CustomTabColorSchemeParams defaultColors = new CustomTabColorSchemeParams.Builder() .setToolbarColor(colorInt) .build(); builder.setDefaultColorSchemeParams(defaultColors); CustomTabsIntent customTabsIntent = builder.build(); customTabsIntent.launchUrl(requireActivity(), Uri.parse(redirectUrl)); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(redirectUrl)); Loading @@ -299,6 +327,7 @@ public class FragmentLoginMain extends Fragment { } catch (Exception e) { Toasty.error(requireActivity(), getString(R.string.toast_error), Toast.LENGTH_LONG).show(); } } } else { Toasty.error(requireActivity(), getString(R.string.client_error), Toasty.LENGTH_SHORT).show(); } Loading app/src/main/res/menus/mastodon/menu/main_login.xml +6 −17 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- <item android:id="@+id/action_about" android:title="@string/action_about" app:showAsAction="never" /> <item android:id="@+id/action_privacy" android:title="@string/action_privacy" app:showAsAction="never" /> --> <item android:id="@+id/action_proxy" android:title="@string/proxy_set" Loading @@ -27,11 +17,10 @@ android:title="@string/import_data" app:showAsAction="never" /> <!-- <item android:id="@+id/action_provider" android:id="@+id/action_custom_tabs" android:checkable="true" android:title="@string/set_security_provider" android:title="@string/custom_tabs" app:actionViewClass="android.widget.CheckBox" /> --> </menu> app/src/main/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -1509,6 +1509,7 @@ <string name="SET_NITTER_HOST" translatable="false">SET_NITTER_HOST</string> <string name="DEFAULT_NITTER_HOST" translatable="false">nitter.net</string> <string name="SET_USE_CACHE" translatable="false">SET_USE_CACHE</string> <string name="SET_CUSTOM_TABS" translatable="false">SET_CUSTOM_TABS</string> <string name="SET_BIBLIOGRAM" translatable="false">SET_BIBLIOGRAM</string> <string name="SET_BIBLIOGRAM_HOST" translatable="false">SET_BIBLIOGRAM_HOST</string> <string name="DEFAULT_BIBLIOGRAM_HOST" translatable="false">bibliogram.art</string> Loading app/src/main/res/xml/pref_interface.xml +7 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,13 @@ app:summary="@string/set_use_cache_indication" app:title="@string/set_use_cache" /> <SwitchPreferenceCompat app:defaultValue="true" app:iconSpaceReserved="false" app:key="@string/SET_CUSTOM_TABS" app:singleLineTitle="false" app:title="@string/custom_tabs" /> <SwitchPreferenceCompat app:defaultValue="false" app:iconSpaceReserved="false" Loading Loading
app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +25 −10 Original line number Diff line number Diff line Loading @@ -76,6 +76,8 @@ import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsIntent; import androidx.core.app.ActivityOptionsCompat; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; Loading Loading @@ -646,6 +648,18 @@ public class Helper { if (url == null) { return; } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); boolean customTab = sharedpreferences.getBoolean(context.getString(R.string.SET_CUSTOM_TABS), true); if (customTab) { CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); int colorInt = ThemeHelper.getAttColor(context, R.attr.statusBar); CustomTabColorSchemeParams defaultColors = new CustomTabColorSchemeParams.Builder() .setToolbarColor(colorInt) .build(); builder.setDefaultColorSchemeParams(defaultColors); CustomTabsIntent customTabsIntent = builder.build(); customTabsIntent.launchUrl(context, Uri.parse(url)); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) { Loading @@ -658,6 +672,7 @@ public class Helper { Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show(); } } } /** * Transform URLs to privacy frontend Loading
app/src/main/java/app/fedilab/android/ui/fragment/FragmentLoginMain.java +36 −7 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static app.fedilab.android.activities.LoginActivity.softwareLogin; import android.Manifest; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; Loading @@ -43,9 +44,12 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.widget.PopupMenu; import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsIntent; import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; Loading @@ -60,6 +64,7 @@ import app.fedilab.android.mastodon.client.entities.app.Account; import app.fedilab.android.mastodon.client.entities.app.InstanceSocial; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.ThemeHelper; import app.fedilab.android.mastodon.helper.ZipHelper; import app.fedilab.android.mastodon.viewmodel.mastodon.AppsVM; import app.fedilab.android.mastodon.viewmodel.mastodon.InstanceSocialVM; Loading Loading @@ -214,6 +219,10 @@ public class FragmentLoginMain extends Fragment { menuInflater.inflate(R.menu.main_login, popupMenu.getMenu()); MenuItem adminTabItem = popupMenu.getMenu().findItem(R.id.action_request_admin); adminTabItem.setChecked(requestedAdmin); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean customTab = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_TABS), true); popupMenu.getMenu().findItem(R.id.action_custom_tabs).setChecked(customTab); popupMenu.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.action_proxy) { Loading Loading @@ -242,6 +251,13 @@ public class FragmentLoginMain extends Fragment { } else { proceed(); } } else if (itemId == R.id.action_custom_tabs) { boolean newValue = !item.isChecked(); item.setChecked(newValue); SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putBoolean(getString(R.string.SET_CUSTOM_TABS), newValue); editor.apply(); return false; } return false; }); Loading Loading @@ -291,6 +307,18 @@ public class FragmentLoginMain extends Fragment { client_idLogin = app.client_id; client_secretLogin = app.client_secret; String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, requestedAdmin); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean customTab = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_TABS), true); if (customTab) { CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); int colorInt = ThemeHelper.getAttColor(requireActivity(), R.attr.statusBar); CustomTabColorSchemeParams defaultColors = new CustomTabColorSchemeParams.Builder() .setToolbarColor(colorInt) .build(); builder.setDefaultColorSchemeParams(defaultColors); CustomTabsIntent customTabsIntent = builder.build(); customTabsIntent.launchUrl(requireActivity(), Uri.parse(redirectUrl)); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(redirectUrl)); Loading @@ -299,6 +327,7 @@ public class FragmentLoginMain extends Fragment { } catch (Exception e) { Toasty.error(requireActivity(), getString(R.string.toast_error), Toast.LENGTH_LONG).show(); } } } else { Toasty.error(requireActivity(), getString(R.string.client_error), Toasty.LENGTH_SHORT).show(); } Loading
app/src/main/res/menus/mastodon/menu/main_login.xml +6 −17 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- <item android:id="@+id/action_about" android:title="@string/action_about" app:showAsAction="never" /> <item android:id="@+id/action_privacy" android:title="@string/action_privacy" app:showAsAction="never" /> --> <item android:id="@+id/action_proxy" android:title="@string/proxy_set" Loading @@ -27,11 +17,10 @@ android:title="@string/import_data" app:showAsAction="never" /> <!-- <item android:id="@+id/action_provider" android:id="@+id/action_custom_tabs" android:checkable="true" android:title="@string/set_security_provider" android:title="@string/custom_tabs" app:actionViewClass="android.widget.CheckBox" /> --> </menu>
app/src/main/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -1509,6 +1509,7 @@ <string name="SET_NITTER_HOST" translatable="false">SET_NITTER_HOST</string> <string name="DEFAULT_NITTER_HOST" translatable="false">nitter.net</string> <string name="SET_USE_CACHE" translatable="false">SET_USE_CACHE</string> <string name="SET_CUSTOM_TABS" translatable="false">SET_CUSTOM_TABS</string> <string name="SET_BIBLIOGRAM" translatable="false">SET_BIBLIOGRAM</string> <string name="SET_BIBLIOGRAM_HOST" translatable="false">SET_BIBLIOGRAM_HOST</string> <string name="DEFAULT_BIBLIOGRAM_HOST" translatable="false">bibliogram.art</string> Loading
app/src/main/res/xml/pref_interface.xml +7 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,13 @@ app:summary="@string/set_use_cache_indication" app:title="@string/set_use_cache" /> <SwitchPreferenceCompat app:defaultValue="true" app:iconSpaceReserved="false" app:key="@string/SET_CUSTOM_TABS" app:singleLineTitle="false" app:title="@string/custom_tabs" /> <SwitchPreferenceCompat app:defaultValue="false" app:iconSpaceReserved="false" Loading