@@ -56,6 +56,8 @@ public class MainActivity extends Activity implements View.OnClickListener, View
5656
5757 public interface AppClickListener {
5858 void appClicked (AppModel appModel , int flag );
59+
60+ void appLongPress (AppModel appModel );
5961 }
6062
6163 @ Override
@@ -297,6 +299,13 @@ private void launchApp(AppModel appModel) {
297299 }
298300 }
299301
302+ private void openAppInfo (AppModel appModel ) {
303+ LauncherApps launcher = (LauncherApps ) getSystemService (Context .LAUNCHER_APPS_SERVICE );
304+ Intent intent = getPackageManager ().getLaunchIntentForPackage (appModel .appPackage );
305+ if (intent == null || intent .getComponent () == null ) return ;
306+ launcher .startAppDetailsActivity (intent .getComponent (), appModel .userHandle , null , null );
307+ }
308+
300309 private void setHomeApp (AppModel appModel , int flag ) {
301310 prefs .setHomeApp (appModel , flag );
302311 backToHome ();
@@ -314,7 +323,7 @@ private String getDefaultLauncherPackage() {
314323 intent .setAction (Intent .ACTION_MAIN );
315324 intent .addCategory (Intent .CATEGORY_HOME );
316325 ResolveInfo result = getPackageManager ().resolveActivity (intent , 0 );
317- if (result == null && result .activityInfo == null )
326+ if (result == null || result .activityInfo == null )
318327 return "android" ;
319328 return result .activityInfo .packageName ;
320329 }
@@ -421,9 +430,18 @@ private void checkForDoubleTap() {
421430 }
422431
423432 private AppClickListener getAppClickListener () {
424- return (appModel , flag ) -> {
425- if (flag == FLAG_LAUNCH_APP ) prepareToLaunchApp (appModel );
426- else setHomeApp (appModel , flag );
433+ return new AppClickListener () {
434+ @ Override
435+ public void appClicked (AppModel appModel , int flag ) {
436+ if (flag == FLAG_LAUNCH_APP ) prepareToLaunchApp (appModel );
437+ else setHomeApp (appModel , flag );
438+ }
439+
440+ @ Override
441+ public void appLongPress (AppModel appModel ) {
442+ hideKeyboard ();
443+ openAppInfo (appModel );
444+ }
427445 };
428446 }
429447
@@ -584,6 +602,11 @@ public View getView(int position, View convertView, ViewGroup parent) {
584602 AppModel clickedAppModel = (AppModel ) viewHolder .appName .getTag ();
585603 appClickListener .appClicked (clickedAppModel , flag );
586604 });
605+ viewHolder .appName .setOnLongClickListener (view -> {
606+ AppModel clickedAppModel = (AppModel ) viewHolder .appName .getTag ();
607+ appClickListener .appLongPress (clickedAppModel );
608+ return true ;
609+ });
587610 if (appModel .userHandle == android .os .Process .myUserHandle ())
588611 viewHolder .indicator .setVisibility (View .GONE );
589612 else viewHolder .indicator .setVisibility (View .VISIBLE );
0 commit comments