|
|
@@ -1,10 +1,16 @@
|
|
|
package com.izouma.booster.activity;
|
|
|
|
|
|
+import android.app.PendingIntent;
|
|
|
+import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
+import android.content.IntentSender;
|
|
|
import android.os.Bundle;
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
+import androidx.core.content.pm.ShortcutInfoCompat;
|
|
|
+import androidx.core.content.pm.ShortcutManagerCompat;
|
|
|
|
|
|
+import com.izouma.booster.R;
|
|
|
import com.izouma.booster.databinding.ActivitySettingsBinding;
|
|
|
|
|
|
public class SettingsActivity extends AppCompatActivity {
|
|
|
@@ -22,5 +28,30 @@ public class SettingsActivity extends AppCompatActivity {
|
|
|
binding.btnNotification.setOnClickListener(v -> {
|
|
|
startActivity(new Intent(SettingsActivity.this, NotificationSettingsActivity.class));
|
|
|
});
|
|
|
+ binding.btnClean.setOnClickListener(v -> {
|
|
|
+ installShortCut(SettingsActivity.this, "OneTapClean", getResources().getString(R.string.onetap_clean), new Intent(SettingsActivity.this, CleanActivity.class));
|
|
|
+ });
|
|
|
+ binding.btnBoost.setOnClickListener(v -> {
|
|
|
+ Intent intent = new Intent(SettingsActivity.this, KillActivity.class);
|
|
|
+ intent.putExtra("type", KillActivity.Type.BOOST);
|
|
|
+ installShortCut(SettingsActivity.this, "OneTapBoost", getResources().getString(R.string.onetap_boost), intent);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void installShortCut(Context context, String shortcutID, String name, Intent intent) {
|
|
|
+ if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
|
|
|
+ intent.setAction(Intent.ACTION_MAIN);
|
|
|
+ //新的创建机制,判断唯一性的方法更改为ShortcutID了,默认不允许重复创建ID相同的快捷方式
|
|
|
+ ShortcutInfoCompat pinShortcutInfo =
|
|
|
+ new ShortcutInfoCompat.Builder(context, shortcutID).setShortLabel(name).setIntent(intent).build();
|
|
|
+ Intent pinnedShortcutCallbackIntent =
|
|
|
+ ShortcutManagerCompat.createShortcutResultIntent(context, pinShortcutInfo);
|
|
|
+
|
|
|
+ PendingIntent successCallback = PendingIntent.getBroadcast(context, 0,
|
|
|
+ pinnedShortcutCallbackIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
|
+
|
|
|
+ ShortcutManagerCompat.requestPinShortcut(context, pinShortcutInfo,
|
|
|
+ successCallback.getIntentSender());
|
|
|
+ }
|
|
|
}
|
|
|
}
|