Browse Source

增加搜索功能

liuyuqi-dellpc 3 years ago
parent
commit
676670143e

+ 2 - 2
app/build.gradle

@@ -15,8 +15,8 @@ android {
         applicationId "me.yoqi.android.appmanager"
         minSdkVersion 15
         targetSdkVersion 29
-        versionCode 1
-        versionName "1.0"
+        versionCode 2
+        versionName "1.0.1"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }

+ 3 - 1
app/src/main/AndroidManifest.xml

@@ -2,6 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="me.yoqi.android.appmanager">
+
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
         tools:ignore="ProtectedPermissions" />
@@ -18,7 +19,8 @@
         android:roundIcon="@mipmap/ic_launcher"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".MainActivity">
+        <activity android:name=".MainActivity"
+            android:theme="@style/Theme.AppCompat.Light.NoActionBar">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

+ 49 - 5
app/src/main/java/me/yoqi/android/appmanager/MainActivity.java

@@ -2,9 +2,13 @@ package me.yoqi.android.appmanager;
 
 import android.content.Context;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.view.View;
+import android.widget.EditText;
 import android.widget.ListView;
 import android.widget.RadioButton;
+import android.widget.RadioGroup;
 import android.widget.TextView;
 
 import androidx.appcompat.app.AppCompatActivity;
@@ -25,11 +29,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
     RadioButton allApp, dsfApp;
     ListView listView;
     TextView tvLoad;
-
+    EditText edtSearch;
     AppInfoAdapter adapter;
-    List<AppInfo> mdatas = new ArrayList<>();
-    List<AppInfo> appInfos = new ArrayList<>();
-    List<AppInfo> dsfappInfos = new ArrayList<>();
+    List<AppInfo> mdatas = new ArrayList<>();  //当前界面app list
+    List<AppInfo> appInfos = new ArrayList<>();  //系统app list
+    List<AppInfo> dsfappInfos = new ArrayList<>(); //第三方app
     Context mContext;
     SimplexToast simplexToast;
     SPUtils spUtils;
@@ -48,9 +52,27 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         dsfApp = findViewById(R.id.dsfApp); //第三方app
         tvLoad = findViewById(R.id.tvLoad); //加载中。。。
         listView = findViewById(R.id.listView);
+        edtSearch = findViewById(R.id.edt_search);
+        edtSearch.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                String searchWord = edtSearch.getText().toString().trim();
+                searchApp(searchWord);
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
         allApp.setOnClickListener(this);
         dsfApp.setOnClickListener(this);
-        simplexToast = new SimplexToast(mContext);
+        simplexToast = SimplexToast.getInstance(mContext);
         spUtils = new SPUtils(mContext);
     }
 
@@ -75,7 +97,29 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
                 });
             }
         }).start();
+    }
 
+    /**
+     * 通过关键词搜索app
+     *
+     * @param keyword
+     */
+    private void searchApp(String keyword) {
+        mdatas.clear();
+        if (allApp.isChecked()) {
+            for (int i = 0; i < appInfos.size(); i++) {
+                if (appInfos.get(i).getAppName().toLowerCase().contains(keyword) || appInfos.get(i).getPackageName().toLowerCase().contains(keyword)) {
+                    mdatas.add(appInfos.get(i));
+                }
+            }
+        } else if (dsfApp.isChecked()) {
+            for (int i = 0; i < dsfappInfos.size(); i++) {
+                if (dsfappInfos.get(i).getAppName().toLowerCase().contains(keyword) || dsfappInfos.get(i).getPackageName().toLowerCase().contains(keyword)) {
+                    mdatas.add(dsfappInfos.get(i));
+                }
+            }
+        }
+        adapter.notifyDataSetChanged();
     }
 
     @Override

+ 8 - 0
app/src/main/java/me/yoqi/android/utils/SimplexToast.java

@@ -20,6 +20,14 @@ public class SimplexToast {
     private static long nextTimeMillis;
     private static int yOffset;
     static Context mContext;
+    private static SimplexToast simplexToast;
+
+    public synchronized static SimplexToast getInstance(Context context) {
+        if (simplexToast == null) {
+            simplexToast = new SimplexToast(context);
+        }
+        return simplexToast;
+    }
 
     public SimplexToast(Context context) {
         mContext = context;

+ 14 - 1
app/src/main/res/layout/activity_main.xml

@@ -14,7 +14,20 @@
             android:layout_height="match_parent"
             android:orientation="vertical">
 
+            <EditText
+                android:id="@+id/edt_search"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:layout_marginLeft="20dp"
+                android:layout_marginTop="10dp"
+                android:layout_marginRight="20dp"
+                android:hint="@string/hite_search_app"
+                android:textAlignment="center"
+                android:singleLine="true" />
+
             <RadioGroup
+                android:id="@+id/rg_app_type"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center"
@@ -43,8 +56,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
-                android:listSelector="@android:color/transparent"
                 android:choiceMode="singleChoice"
+                android:listSelector="@android:color/transparent"
                 android:visibility="gone"></ListView>
         </LinearLayout>
 

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

@@ -4,4 +4,5 @@
     <string name="system_app">系统App</string>
     <string name="dsf_app">第三方App</string>
     <string name="loading">正在加载中...</string>
+    <string name="hite_search_app">搜索app</string>
 </resources>

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

@@ -3,4 +3,5 @@
     <string name="system_app">System App</string>
     <string name="dsf_app">User App</string>
     <string name="loading">loading...</string>
+    <string name="hite_search_app">Search App</string>
 </resources>