Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd7e7ddf authored by Amit Kumar's avatar Amit Kumar 💻
Browse files

Fix null pointer exception in apps loading and handle UI states better

parent 191fcf86
Loading
Loading
Loading
Loading
+2 −15
Original line number Original line Diff line number Diff line
@@ -297,28 +297,15 @@ public class AppProvider {
            if (databaseItem.itemType == Constants.ITEM_TYPE_APPLICATION) {
            if (databaseItem.itemType == Constants.ITEM_TYPE_APPLICATION) {
                ApplicationItem applicationItem = mApplicationItems.get(databaseItem.id);
                ApplicationItem applicationItem = mApplicationItems.get(databaseItem.id);
                if (applicationItem == null) {
                if (applicationItem == null) {
                    UserHandle userHandle = null;
                    UserHandle userHandle = new UserHandle();
                    int index = databaseItem.id.lastIndexOf((int) '/');
                    if (index > -1) {
                        String serialText = databaseItem.id.substring(index);
                        try {
                            long serial = Long.parseLong(serialText);
                            userHandle = new UserHandle(serial, Process.myUserHandle());
                        } catch (NumberFormatException e) {
                            e.printStackTrace();
                        }
                    }
                    if(userHandle == null){
                        userHandle = new UserHandle();
                    }
                    if (isAppOnSdcard(databaseItem.packageName, userHandle) || !isSdCardReady) {
                    if (isAppOnSdcard(databaseItem.packageName, userHandle) || !isSdCardReady) {
                        Log.d(TAG, "Missing package: " + databaseItem.packageName);
                        Log.d(TAG, "Missing package: " + databaseItem.packageName);
                        Log.d(TAG, "Is App on Sdcard " + isAppOnSdcard(databaseItem.packageName, databaseItem.user));
                        Log.d(TAG, "Is App on Sdcard " + isAppOnSdcard(databaseItem.packageName, databaseItem.user));
                        Log.d(TAG, "Is Sdcard ready " + isSdCardReady);
                        Log.d(TAG, "Is Sdcard ready " + isSdCardReady);



                        pendingPackages.addToList(userHandle, databaseItem.packageName);
                        pendingPackages.addToList(userHandle, databaseItem.packageName);
                        applicationItem = new ApplicationItem();
                        applicationItem = new ApplicationItem();
                        applicationItem.id = databaseItem.id;
                        applicationItem.title = databaseItem.title;
                        applicationItem.title = databaseItem.title;
                        applicationItem.user = userHandle;
                        applicationItem.user = userHandle;
                        applicationItem.componentName = databaseItem.getTargetComponent();
                        applicationItem.componentName = databaseItem.getTargetComponent();
+38 −14
Original line number Original line Diff line number Diff line
@@ -1060,7 +1060,7 @@ public class LauncherActivity extends AppCompatActivity implements
            return false;
            return false;
        });
        });
        mFolderTitleInput.setOnClickListener(view -> mFolderTitleInput.setCursorVisible(true));
        mFolderTitleInput.setOnClickListener(view -> mFolderTitleInput.setCursorVisible(true));
        mFolderWindowContainer.setOnClickListener(view -> hideFolderWindowContainer());
        mFolderWindowContainer.setOnClickListener(view -> returnToHomeScreen());
    }
    }


    public void hideKeyboard(View view) {
    public void hideKeyboard(View view) {
@@ -2785,6 +2785,10 @@ public class LauncherActivity extends AppCompatActivity implements
            @Override
            @Override
            public void onAnimationEnd(Animator animation) {
            public void onAnimationEnd(Animator animation) {
                currentAnimator = null;
                currentAnimator = null;
                blurLayer.setAlpha(1f);
                mHorizontalPager.setAlpha(0f);
                mIndicator.setAlpha(0f);
                mDock.setAlpha(0f);
            }
            }


            @Override
            @Override
@@ -2859,18 +2863,28 @@ public class LauncherActivity extends AppCompatActivity implements
        set.setDuration(300);
        set.setDuration(300);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {

            @Override
            public void onAnimationStart(Animator animation) {
                mHorizontalPager.setVisibility(VISIBLE);
                mDock.setVisibility(VISIBLE);
                mIndicator.setVisibility(VISIBLE);
            }

            @Override
            @Override
            public void onAnimationEnd(Animator animation) {
            public void onAnimationEnd(Animator animation) {
                mFolderWindowContainer.setVisibility(View.GONE);
                mFolderWindowContainer.setVisibility(View.GONE);
                currentAnimator = null;
                currentAnimator = null;

                blurLayer.setAlpha(0f);
                mHorizontalPager.setAlpha(1f);
                mIndicator.setAlpha(1f);
                mDock.setAlpha(1f);
            }
            }


            @Override
            @Override
            public void onAnimationCancel(Animator animation) {
            public void onAnimationCancel(Animator animation) {
                mFolderWindowContainer.setVisibility(View.GONE);
                mFolderWindowContainer.setVisibility(View.GONE);
                currentAnimator = null;
                currentAnimator = null;

                blurLayer.setAlpha(0f);
                blurLayer.setAlpha(0f);
                mHorizontalPager.setAlpha(1f);
                mHorizontalPager.setAlpha(1f);
                mIndicator.setAlpha(1f);
                mIndicator.setAlpha(1f);
@@ -2894,10 +2908,18 @@ public class LauncherActivity extends AppCompatActivity implements
                        && mFolderWindowContainer.getVisibility() != View.VISIBLE
                        && mFolderWindowContainer.getVisibility() != View.VISIBLE
                        && (activeRoundedWidgetView == null || !activeRoundedWidgetView.isWidgetActivated());
                        && (activeRoundedWidgetView == null || !activeRoundedWidgetView.isWidgetActivated());


        if (alreadyOnHome) {
            returnToHomeScreen();
        }

        if (shouldMoveToDefaultScreen) {
        if (shouldMoveToDefaultScreen) {
            mHorizontalPager.setVisibility(VISIBLE);
            mHorizontalPager.setAlpha(1f);
            mDock.setVisibility(VISIBLE);
            mDock.setAlpha(1f);
            mIndicator.setVisibility(VISIBLE);
            mIndicator.setAlpha(1f);
            mHorizontalPager.setCurrentPage(1);
            mHorizontalPager.setCurrentPage(1);
        } else if (alreadyOnHome) {
            returnToHomeScreen();
        }
        }
    }
    }


@@ -2942,9 +2964,10 @@ public class LauncherActivity extends AppCompatActivity implements
                                super.onAnimationCancel(animation);
                                super.onAnimationCancel(animation);
                                currentAnimator = null;
                                currentAnimator = null;
                                swipeSearchContainer.setVisibility(GONE);
                                swipeSearchContainer.setVisibility(GONE);
                                blurLayer.setAlpha(0f);
                                mHorizontalPager.setVisibility(VISIBLE);
                                mHorizontalPager.setVisibility(VISIBLE);
                                mIndicator.setVisibility(VISIBLE);
                                mDock.setVisibility(VISIBLE);
                                mDock.setVisibility(VISIBLE);
                                mIndicator.setVisibility(VISIBLE);
                            }
                            }


                            @Override
                            @Override
@@ -2952,9 +2975,11 @@ public class LauncherActivity extends AppCompatActivity implements
                                super.onAnimationEnd(animation);
                                super.onAnimationEnd(animation);
                                currentAnimator = null;
                                currentAnimator = null;


                                blurLayer.setAlpha(1f);
                                mHorizontalPager.setVisibility(GONE);
                                mHorizontalPager.setVisibility(GONE);
                                mIndicator.setVisibility(GONE);
                                mDock.setVisibility(GONE);
                                mDock.setVisibility(GONE);
                                mIndicator.setVisibility(GONE);

                                BlissInput searchEditText = swipeSearchContainer.findViewById(
                                BlissInput searchEditText = swipeSearchContainer.findViewById(
                                        R.id.search_input);
                                        R.id.search_input);
                                ImageView clearSuggestions = swipeSearchContainer.findViewById(
                                ImageView clearSuggestions = swipeSearchContainer.findViewById(
@@ -3038,25 +3063,22 @@ public class LauncherActivity extends AppCompatActivity implements
            currentAnimator.cancel();
            currentAnimator.cancel();
        }
        }
        AnimatorSet set = new AnimatorSet();
        AnimatorSet set = new AnimatorSet();
        /*ValueAnimator blurAnimator = ValueAnimator.ofInt(startBlurRadius, 0);
        blurAnimator.addUpdateListener(animation ->
                BlurWallpaperProvider.getInstance(this).blurWithLauncherView(mergedView, (Integer) animation.getAnimatedValue()));*/
        set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y,
        set.play(ObjectAnimator.ofFloat(swipeSearchContainer, View.TRANSLATION_Y,
                -swipeSearchContainer.getHeight()))
                -swipeSearchContainer.getHeight()))
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 0f));
                .with(ObjectAnimator.ofFloat(blurLayer, View.ALPHA, 0f));
        set.setDuration(500);
        set.setDuration(300);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {
                            @Override
                            @Override
                            public void onAnimationStart(Animator animation) {
                            public void onAnimationStart(Animator animation) {
                                super.onAnimationStart(animation);
                                super.onAnimationStart(animation);
                                //BlurWallpaperProvider.getInstance(LauncherActivity.this).clear();
                                mHorizontalPager.setVisibility(VISIBLE);
                                mHorizontalPager.setVisibility(VISIBLE);
                                mIndicator.setVisibility(VISIBLE);
                                mDock.setVisibility(VISIBLE);
                                mDock.setVisibility(VISIBLE);
                                mIndicator.setVisibility(VISIBLE);
                                //BlurWallpaperProvider.getInstance(LauncherActivity.this).clear();
                            }
                            }


                            @Override
                            @Override
@@ -3064,9 +3086,10 @@ public class LauncherActivity extends AppCompatActivity implements
                                super.onAnimationCancel(animation);
                                super.onAnimationCancel(animation);
                                currentAnimator = null;
                                currentAnimator = null;
                                swipeSearchContainer.setVisibility(VISIBLE);
                                swipeSearchContainer.setVisibility(VISIBLE);
                                blurLayer.setAlpha(1f);
                                mHorizontalPager.setVisibility(GONE);
                                mHorizontalPager.setVisibility(GONE);
                                mIndicator.setVisibility(GONE);
                                mDock.setVisibility(GONE);
                                mDock.setVisibility(GONE);
                                mIndicator.setVisibility(GONE);
                            }
                            }


                            @Override
                            @Override
@@ -3074,6 +3097,7 @@ public class LauncherActivity extends AppCompatActivity implements
                                super.onAnimationEnd(animation);
                                super.onAnimationEnd(animation);
                                currentAnimator = null;
                                currentAnimator = null;
                                swipeSearchContainer.setVisibility(GONE);
                                swipeSearchContainer.setVisibility(GONE);
                                blurLayer.setAlpha(0f);
                                if (searchDisposableObserver != null
                                if (searchDisposableObserver != null
                                        && !searchDisposableObserver.isDisposed()) {
                                        && !searchDisposableObserver.isDisposed()) {
                                    searchDisposableObserver.dispose();
                                    searchDisposableObserver.dispose();