From a30e8964929e48dae8a0d997580f09ec3ce0aca2 Mon Sep 17 00:00:00 2001 From: Tanuj M Date: Thu, 24 Dec 2020 17:42:08 +0530 Subject: [PATCH] Open app info on long press --- .../app/olauncher/light/MainActivity.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/app/olauncher/light/MainActivity.java b/app/src/main/java/app/olauncher/light/MainActivity.java index b2c76df..3e31992 100644 --- a/app/src/main/java/app/olauncher/light/MainActivity.java +++ b/app/src/main/java/app/olauncher/light/MainActivity.java @@ -56,6 +56,8 @@ public class MainActivity extends Activity implements View.OnClickListener, View public interface AppClickListener { void appClicked(AppModel appModel, int flag); + + void appLongPress(AppModel appModel); } @Override @@ -297,6 +299,13 @@ private void launchApp(AppModel appModel) { } } + private void openAppInfo(AppModel appModel) { + LauncherApps launcher = (LauncherApps) getSystemService(Context.LAUNCHER_APPS_SERVICE); + Intent intent = getPackageManager().getLaunchIntentForPackage(appModel.appPackage); + if (intent == null || intent.getComponent() == null) return; + launcher.startAppDetailsActivity(intent.getComponent(), appModel.userHandle, null, null); + } + private void setHomeApp(AppModel appModel, int flag) { prefs.setHomeApp(appModel, flag); backToHome(); @@ -314,7 +323,7 @@ private String getDefaultLauncherPackage() { intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); ResolveInfo result = getPackageManager().resolveActivity(intent, 0); - if (result == null && result.activityInfo == null) + if (result == null || result.activityInfo == null) return "android"; return result.activityInfo.packageName; } @@ -421,9 +430,18 @@ private void checkForDoubleTap() { } private AppClickListener getAppClickListener() { - return (appModel, flag) -> { - if (flag == FLAG_LAUNCH_APP) prepareToLaunchApp(appModel); - else setHomeApp(appModel, flag); + return new AppClickListener() { + @Override + public void appClicked(AppModel appModel, int flag) { + if (flag == FLAG_LAUNCH_APP) prepareToLaunchApp(appModel); + else setHomeApp(appModel, flag); + } + + @Override + public void appLongPress(AppModel appModel) { + hideKeyboard(); + openAppInfo(appModel); + } }; } @@ -584,6 +602,11 @@ public View getView(int position, View convertView, ViewGroup parent) { AppModel clickedAppModel = (AppModel) viewHolder.appName.getTag(); appClickListener.appClicked(clickedAppModel, flag); }); + viewHolder.appName.setOnLongClickListener(view -> { + AppModel clickedAppModel = (AppModel) viewHolder.appName.getTag(); + appClickListener.appLongPress(clickedAppModel); + return true; + }); if (appModel.userHandle == android.os.Process.myUserHandle()) viewHolder.indicator.setVisibility(View.GONE); else viewHolder.indicator.setVisibility(View.VISIBLE);