Add more hint for shortcut and notification (#2411)
Co-authored-by: vvb2060 <vvb2060@gmail.com>
This commit is contained in:
parent
e2bfd98cee
commit
d8cea17a80
|
|
@ -30,6 +30,7 @@ import androidx.fragment.app.FragmentManager;
|
|||
import org.lsposed.manager.App;
|
||||
import org.lsposed.manager.ConfigManager;
|
||||
import org.lsposed.manager.R;
|
||||
import org.lsposed.manager.ui.fragment.HomeFragment;
|
||||
import org.lsposed.manager.util.ShortcutUtil;
|
||||
|
||||
public class WelcomeDialog extends DialogFragment {
|
||||
|
|
@ -43,12 +44,16 @@ public class WelcomeDialog extends DialogFragment {
|
|||
R.string.parasitic_welcome_summary_no_shortcut_support)
|
||||
.setNegativeButton(R.string.never_show, (dialog, which) ->
|
||||
App.getPreferences().edit().putBoolean("never_show_welcome", true).apply())
|
||||
.setPositiveButton(android.R.string.ok, null);
|
||||
if (shortcutSupported)
|
||||
builder.setNeutralButton(R.string.create_shortcut, (dialog, which) ->
|
||||
ShortcutUtil.requestPinLaunchShortcut(() ->
|
||||
App.getPreferences().edit().putBoolean("never_show_welcome",
|
||||
true).apply()));
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.setNeutralButton(R.string.create_shortcut, (dialog, which) -> {
|
||||
if (!ShortcutUtil.requestPinLaunchShortcut(() -> App.getPreferences().edit()
|
||||
.putBoolean("never_show_welcome", true).apply())) {
|
||||
var home = (HomeFragment) getParentFragment();
|
||||
if (home != null) {
|
||||
home.showHint(R.string.settings_unsupported_pin_shortcut_summary, false);
|
||||
}
|
||||
}
|
||||
});
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -163,19 +163,21 @@ public class SettingsFragment extends BaseFragment {
|
|||
if (App.isParasitic() && !ShortcutUtil.isLaunchShortcutPinned()) {
|
||||
var s = notification.getContext().getString(R.string.disable_status_notification_error);
|
||||
notification.setSummaryOn(notification.getSummary() + "\n" + s);
|
||||
notification.setEnabled(false);
|
||||
} else {
|
||||
notification.setEnabled(installed);
|
||||
if (ConfigManager.enableStatusNotification()) notification.setEnabled(false);
|
||||
}
|
||||
notification.setVisible(installed);
|
||||
notification.setChecked(installed && ConfigManager.enableStatusNotification());
|
||||
notification.setOnPreferenceChangeListener((p, v) ->
|
||||
ConfigManager.setEnableStatusNotification((boolean) v)
|
||||
);
|
||||
notification.setOnPreferenceChangeListener((p, v) -> {
|
||||
if ((boolean) v && App.isParasitic() && !ShortcutUtil.isLaunchShortcutPinned()) {
|
||||
p.setEnabled(false);
|
||||
}
|
||||
return ConfigManager.setEnableStatusNotification((boolean) v);
|
||||
});
|
||||
}
|
||||
|
||||
Preference shortcut = findPreference("add_shortcut");
|
||||
if (shortcut != null) {
|
||||
shortcut.setVisible(App.isParasitic() && ShortcutUtil.isRequestPinShortcutSupported(requireContext()));
|
||||
shortcut.setVisible(App.isParasitic());
|
||||
if (ShortcutUtil.isLaunchShortcutPinned()) {
|
||||
shortcut.setEnabled(false);
|
||||
shortcut.setSummary(R.string.settings_created_shortcut_summary);
|
||||
|
|
@ -184,7 +186,7 @@ public class SettingsFragment extends BaseFragment {
|
|||
shortcut.setSummary(R.string.settings_create_shortcut_summary);
|
||||
}
|
||||
shortcut.setOnPreferenceClickListener(preference -> {
|
||||
ShortcutUtil.requestPinLaunchShortcut(() -> {
|
||||
if (!ShortcutUtil.requestPinLaunchShortcut(() -> {
|
||||
shortcut.setEnabled(false);
|
||||
shortcut.setSummary(R.string.settings_created_shortcut_summary);
|
||||
if (notification != null) {
|
||||
|
|
@ -192,7 +194,9 @@ public class SettingsFragment extends BaseFragment {
|
|||
notification.setSummaryOn(R.string.settings_enable_status_notification_summary);
|
||||
}
|
||||
App.getPreferences().edit().putBoolean("never_show_welcome", true).apply();
|
||||
});
|
||||
})) {
|
||||
parentFragment.showHint(R.string.settings_unsupported_pin_shortcut_summary, true);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,12 +149,12 @@ public class ShortcutUtil {
|
|||
return sm.isRequestPinShortcutSupported();
|
||||
}
|
||||
|
||||
public static void requestPinLaunchShortcut(Runnable afterPinned) {
|
||||
public static boolean requestPinLaunchShortcut(Runnable afterPinned) {
|
||||
if (!App.isParasitic()) throw new RuntimeException();
|
||||
var context = App.getInstance();
|
||||
var sm = context.getSystemService(ShortcutManager.class);
|
||||
if (!isRequestPinShortcutSupported(context)) return;
|
||||
sm.requestPinShortcut(getShortcutBuilder(context).build(),
|
||||
if (!sm.isRequestPinShortcutSupported()) return false;
|
||||
return sm.requestPinShortcut(getShortcutBuilder(context).build(),
|
||||
registerReceiver(context, afterPinned));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -200,6 +200,7 @@
|
|||
<string name="settings_translation_summary">Help us translate %s into your language</string>
|
||||
<string name="settings_create_shortcut_summary">Create a shortcut that can open parasitic manager</string>
|
||||
<string name="settings_created_shortcut_summary">A shortcut has been created to open parasitic manager</string>
|
||||
<string name="settings_unsupported_pin_shortcut_summary">The current default launcher does not support pin shortcuts</string>
|
||||
<string name="settings_enable_status_notification">Status Notification</string>
|
||||
<string name="settings_enable_status_notification_summary">Show a notification that can open parasitic manager</string>
|
||||
<string name="disable_status_notification_error">No shortcut, cannot disable notification</string>
|
||||
|
|
|
|||
|
|
@ -88,16 +88,16 @@
|
|||
android:icon="@drawable/ic_outline_assignment_24"
|
||||
android:key="disable_verbose_log"
|
||||
android:persistent="false"
|
||||
android:title="@string/settings_disable_verbose_log"
|
||||
android:summary="@string/settings_disable_verbose_log_summary"/>
|
||||
android:summary="@string/settings_disable_verbose_log_summary"
|
||||
android:title="@string/settings_disable_verbose_log" />
|
||||
|
||||
<rikka.material.preference.MaterialSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_outline_shield_24"
|
||||
android:key="enable_dex_obfuscate"
|
||||
android:persistent="false"
|
||||
android:title="@string/settings_xposed_api_call_protection"
|
||||
android:summary="@string/settings_xposed_api_call_protection_summary"/>
|
||||
android:summary="@string/settings_xposed_api_call_protection_summary"
|
||||
android:title="@string/settings_xposed_api_call_protection" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_outline_app_shortcut_24"
|
||||
|
|
@ -110,6 +110,7 @@
|
|||
android:icon="@drawable/ic_outline_speaker_notes_24"
|
||||
android:key="enable_status_notification"
|
||||
android:persistent="false"
|
||||
android:shouldDisableView="false"
|
||||
android:summary="@string/settings_enable_status_notification_summary"
|
||||
android:title="@string/settings_enable_status_notification" />
|
||||
</PreferenceCategory>
|
||||
|
|
|
|||
Loading…
Reference in New Issue