xiongzhu %!s(int64=4) %!d(string=hai) anos
pai
achega
f3f7156078

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -7,6 +7,8 @@
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
+    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
+
     <uses-permission
         android:name="android.permission.PACKAGE_USAGE_STATS"
         tools:ignore="ProtectedPermissions" />

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
app/src/main/assets/home.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
app/src/main/assets/home_spinning.json


+ 31 - 0
app/src/main/java/com/izouma/booster/activity/SettingsActivity.java

@@ -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());
+        }
     }
 }

+ 7 - 0
app/src/main/java/com/izouma/booster/fragment/MyFragment.java

@@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Toast;
 
 import com.izouma.booster.R;
 import com.izouma.booster.activity.SettingsActivity;
@@ -44,11 +45,17 @@ public class MyFragment extends Fragment {
         binding.cellManual.setOnClickListener(e -> {
         });
         binding.cellFeedback.setOnClickListener(e -> {
+            Intent intent = new Intent(Intent.ACTION_SEND);
+            intent.setType("plain/text");
+            intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"feedback@booster.com"});
+            intent.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
+            startActivity(Intent.createChooser(intent, ""));
         });
         binding.cellSetting.setOnClickListener(e -> {
             startActivity(new Intent(getContext(), SettingsActivity.class));
         });
         binding.cellUpdate.setOnClickListener(e -> {
+            Toast.makeText(getContext(), getResources().getString(R.string.the_current_version_is_the_latest_version), Toast.LENGTH_SHORT).show();
         });
         binding.cellAbout.setOnClickListener(e -> {
         });

+ 4 - 2
app/src/main/res/layout/activity_settings.xml

@@ -63,14 +63,14 @@
                     <com.google.android.material.button.MaterialButton
                         android:id="@+id/btn_celsius"
                         style="@style/Widget.MaterialComponents.Button.OutlinedButton"
-                        android:layout_width="50dp"
+                        android:layout_width="52dp"
                         android:layout_height="wrap_content"
                         android:text="°C" />
 
                     <com.google.android.material.button.MaterialButton
                         android:id="@+id/btn_fahrenheit"
                         style="@style/Widget.MaterialComponents.Button.OutlinedButton"
-                        android:layout_width="50dp"
+                        android:layout_width="52dp"
                         android:layout_height="wrap_content"
                         android:text="°F" />
 
@@ -104,6 +104,7 @@
             </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/btn_clean"
                 android:layout_width="match_parent"
                 android:layout_height="79dp"
                 android:layout_marginTop="17dp"
@@ -142,6 +143,7 @@
             </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/btn_boost"
                 android:layout_width="match_parent"
                 android:layout_height="79dp"
                 android:layout_marginTop="17dp"

+ 15 - 0
app/src/main/res/layout/home_fragment.xml

@@ -18,6 +18,7 @@
         android:id="@+id/btn_scan"
         android:layout_width="214dp"
         android:layout_height="214dp"
+        android:visibility="gone"
         android:layout_marginTop="115dp"
         android:background="@drawable/bg_home_scan"
         android:gravity="center"
@@ -43,6 +44,20 @@
             android:textSize="12sp" />
     </LinearLayout>
 
+    <com.airbnb.lottie.LottieAnimationView
+        android:id="@+id/animation_view"
+        android:layout_width="350dp"
+        android:layout_height="350dp"
+        android:layout_marginTop="45dp"
+        android:layout_marginBottom="70dp"
+        android:scaleType="centerInside"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:lottie_fileName="home.json"
+        app:lottie_autoPlay="true"
+        app:lottie_loop="true" />
+
     <GridLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -81,4 +81,5 @@
     <string name="battery_drainage_reminder">Battery Drainage Reminder</string>
     <string name="remind_you_when_your_phone_hasn_t_been_scanned_for_potential_threats_for_a_long_time">Remind when your phone hasn\'t been scanned for potential threats for a long time</string>
     <string name="security_reminder">Security Reminder</string>
+    <string name="the_current_version_is_the_latest_version">The current version is the latest version</string>
 </resources>

+ 1 - 0
app/src/main/res/values/themes.xml

@@ -52,5 +52,6 @@
         <item name="android:windowTranslucentStatus">true</item>
         <item name="android:statusBarColor" tools:targetApi="l">@android:color/transparent</item>
         <item name="colorControlNormal">@color/black</item>
+        <item name="android:windowLightStatusBar">true</item>
     </style>
 </resources>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio