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

Commit 5b6bc78a authored by Amit Kumar's avatar Amit Kumar
Browse files

Fix #81 : Not able to drop at empty locations

parent bcab866e
Loading
Loading
Loading
Loading
+4 −7
Original line number Original line Diff line number Diff line
@@ -174,9 +174,6 @@ public class AppProvider extends Service implements Provider {


    @Override
    @Override
    public void reload() {
    public void reload() {
        appsLoaded = false;
        shortcutsLoaded = false;
        databaseLoaded = false;
        initializeAppLoading(new LoadAppsTask(this));
        initializeAppLoading(new LoadAppsTask(this));
        if (Utilities.ATLEAST_OREO) {
        if (Utilities.ATLEAST_OREO) {
            initializeShortcutsLoading(new LoadShortcutTask(this));
            initializeShortcutsLoading(new LoadShortcutTask(this));
@@ -187,16 +184,19 @@ public class AppProvider extends Service implements Provider {
    }
    }


    private void initializeAppLoading(LoadAppsTask loader) {
    private void initializeAppLoading(LoadAppsTask loader) {
        appsLoaded = false;
        loader.setAppProvider(this);
        loader.setAppProvider(this);
        loader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        loader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    }
    }


    private void initializeShortcutsLoading(LoadShortcutTask loader) {
    private void initializeShortcutsLoading(LoadShortcutTask loader) {
        shortcutsLoaded = false;
        loader.setAppProvider(this);
        loader.setAppProvider(this);
        loader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        loader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    }
    }


    private void initializeDatabaseLoading(LoadDatabaseTask loader) {
    private void initializeDatabaseLoading(LoadDatabaseTask loader) {
        databaseLoaded = false;
        loader.setAppProvider(this);
        loader.setAppProvider(this);
        loader.executeOnExecutor(AppExecutors.getInstance().diskIO());
        loader.executeOnExecutor(AppExecutors.getInstance().diskIO());
    }
    }
@@ -208,7 +208,6 @@ public class AppProvider extends Service implements Provider {
    }
    }


    public void loadShortcutsOver(Map<String, ShortcutInfoCompat> shortcuts) {
    public void loadShortcutsOver(Map<String, ShortcutInfoCompat> shortcuts) {
        Log.d(TAG, "loadShortcutsOver() called with: shortcuts = [" + shortcuts + "]");
        mShortcutInfoCompats = shortcuts;
        mShortcutInfoCompats = shortcuts;
        shortcutsLoaded = true;
        shortcutsLoaded = true;
        handleAllProviderLoaded();
        handleAllProviderLoaded();
@@ -317,9 +316,7 @@ public class AppProvider extends Service implements Provider {
        }
        }


        applicationItems.removeAll(mDatabaseItems);
        applicationItems.removeAll(mDatabaseItems);
        for (ApplicationItem applicationItem : applicationItems) {
        mLauncherItems.addAll(applicationItems);
            mLauncherItems.add(applicationItem);
        }
    }
    }


    private ShortcutItem prepareShortcutForNougat(LauncherItem databaseItem) {
    private ShortcutItem prepareShortcutForNougat(LauncherItem databaseItem) {
+22 −25
Original line number Original line Diff line number Diff line
@@ -47,7 +47,6 @@ import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.Editable;
import android.text.TextWatcher;
import android.text.TextWatcher;
import android.util.Log;
import android.view.DragEvent;
import android.view.DragEvent;
import android.view.Gravity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
@@ -100,7 +99,6 @@ import foundation.e.blisslauncher.core.customviews.SquareFrameLayout;
import foundation.e.blisslauncher.core.customviews.SquareImageView;
import foundation.e.blisslauncher.core.customviews.SquareImageView;
import foundation.e.blisslauncher.core.customviews.WidgetHost;
import foundation.e.blisslauncher.core.customviews.WidgetHost;
import foundation.e.blisslauncher.core.database.DatabaseManager;
import foundation.e.blisslauncher.core.database.DatabaseManager;
import foundation.e.blisslauncher.core.database.LauncherDB;
import foundation.e.blisslauncher.core.database.model.ApplicationItem;
import foundation.e.blisslauncher.core.database.model.ApplicationItem;
import foundation.e.blisslauncher.core.database.model.CalendarIcon;
import foundation.e.blisslauncher.core.database.model.CalendarIcon;
import foundation.e.blisslauncher.core.database.model.FolderItem;
import foundation.e.blisslauncher.core.database.model.FolderItem;
@@ -143,7 +141,7 @@ public class LauncherActivity extends AppCompatActivity implements
        AutoCompleteAdapter.OnSuggestionClickListener {
        AutoCompleteAdapter.OnSuggestionClickListener {


    public static final int REORDER_TIMEOUT = 350;
    public static final int REORDER_TIMEOUT = 350;
    private final static int INVALID = LauncherItem.INVALID_CELL;
    private final static int EMPTY_LOCATION_DRAG = -999;
    private static final int REQUEST_PERMISSION_CALL_PHONE = 14;
    private static final int REQUEST_PERMISSION_CALL_PHONE = 14;
    private static final int REQUEST_LOCATION_SOURCE_SETTING = 267;
    private static final int REQUEST_LOCATION_SOURCE_SETTING = 267;
    public static boolean longPressed;
    public static boolean longPressed;
@@ -203,7 +201,6 @@ public class LauncherActivity extends AppCompatActivity implements
    private BlissFrameLayout activeFolderView;
    private BlissFrameLayout activeFolderView;
    private int activeDot;
    private int activeDot;
    private int statusBarHeight;
    private int statusBarHeight;
    private List<LauncherItem> mLauncherItems;


    private static final String TAG = "LauncherActivity";
    private static final String TAG = "LauncherActivity";
    private TextView openUsageAccessTextView;
    private TextView openUsageAccessTextView;
@@ -306,14 +303,14 @@ public class LauncherActivity extends AppCompatActivity implements
                                            LauncherActivity.this).getAppProvider().reload();
                                            LauncherActivity.this).getAppProvider().reload();
                                } else {
                                } else {
                                    if (!allAppsDisplayed) {
                                    if (!allAppsDisplayed) {
                                        mLauncherItems = launcherItems;
                                        showApps(launcherItems);
                                        showApps();
                                    }
                                    }
                                }
                                }
                            }
                            }


                            @Override
                            @Override
                            public void onError(Throwable e) {
                            public void onError(Throwable e) {
                                e.printStackTrace();
                            }
                            }


                            @Override
                            @Override
@@ -597,7 +594,6 @@ public class LauncherActivity extends AppCompatActivity implements
    }
    }


    private void removePackageFromLauncher(String packageName) {
    private void removePackageFromLauncher(String packageName) {
        Log.d(TAG, "removePackageFromLauncher() called with: packageName = [" + packageName + "]");
        handleWobbling(false);
        handleWobbling(false);
        if (mFolderWindowContainer.getVisibility() == View.VISIBLE) {
        if (mFolderWindowContainer.getVisibility() == View.VISIBLE) {
            for (int i = 0; i < mFolderAppsViewPager.getChildCount(); i++) {
            for (int i = 0; i < mFolderAppsViewPager.getChildCount(); i++) {
@@ -851,9 +847,9 @@ public class LauncherActivity extends AppCompatActivity implements
        addLauncherItem(updatedAppItem);
        addLauncherItem(updatedAppItem);
    }
    }


    public void showApps() {
    public void showApps(List<LauncherItem> launcherItems) {
        mProgressBar.setVisibility(GONE);
        mProgressBar.setVisibility(GONE);
        createUI();
        createUI(launcherItems);
        isUiDone = true;
        isUiDone = true;
        createPageChangeListener();
        createPageChangeListener();
        createFolderTitleListener();
        createFolderTitleListener();
@@ -1084,7 +1080,8 @@ public class LauncherActivity extends AppCompatActivity implements
    /**
    /**
     * Populates the pages and the mDock for the first time.
     * Populates the pages and the mDock for the first time.
     */
     */
    private void createUI() {
    private void createUI(
            List<LauncherItem> launcherItems) {
        mHorizontalPager.setUiCreated(false);
        mHorizontalPager.setUiCreated(false);
        mDock.setEnabled(false);
        mDock.setEnabled(false);


@@ -1096,8 +1093,8 @@ public class LauncherActivity extends AppCompatActivity implements
        GridLayout workspaceScreen = preparePage();
        GridLayout workspaceScreen = preparePage();
        pages.add(workspaceScreen);
        pages.add(workspaceScreen);


        for (int i = 0; i < mLauncherItems.size(); i++) {
        for (int i = 0; i < launcherItems.size(); i++) {
            LauncherItem launcherItem = mLauncherItems.get(i);
            LauncherItem launcherItem = launcherItems.get(i);
            BlissFrameLayout appView = prepareLauncherItem(launcherItem);
            BlissFrameLayout appView = prepareLauncherItem(launcherItem);
            if (launcherItem.container == Constants.CONTAINER_HOTSEAT) {
            if (launcherItem.container == Constants.CONTAINER_HOTSEAT) {
                addAppToDock(appView, launcherItem.cell);
                addAppToDock(appView, launcherItem.cell);
@@ -1124,8 +1121,7 @@ public class LauncherActivity extends AppCompatActivity implements
        currentPageNumber = 0;
        currentPageNumber = 0;


        mHorizontalPager.setUiCreated(true);
        mHorizontalPager.setUiCreated(true);
        new Thread(() -> LauncherDB.getDatabase(this).launcherDao().insertAll(
        DatabaseManager.getManager(this).saveLayouts(pages, mDock);
                mLauncherItems)).start();
        mDock.setEnabled(true);
        mDock.setEnabled(true);
    }
    }


@@ -1540,7 +1536,7 @@ public class LauncherActivity extends AppCompatActivity implements
    }
    }


    private void addAppToGrid(GridLayout page, BlissFrameLayout view) {
    private void addAppToGrid(GridLayout page, BlissFrameLayout view) {
        addAppToGrid(page, view, INVALID);
        addAppToGrid(page, view, EMPTY_LOCATION_DRAG);
    }
    }


    private void addAppToGrid(GridLayout page, BlissFrameLayout view, int index) {
    private void addAppToGrid(GridLayout page, BlissFrameLayout view, int index) {
@@ -1552,7 +1548,8 @@ public class LauncherActivity extends AppCompatActivity implements
        view.findViewById(R.id.app_label).setVisibility(View.VISIBLE);
        view.findViewById(R.id.app_label).setVisibility(View.VISIBLE);
        view.setLayoutParams(iconLayoutParams);
        view.setLayoutParams(iconLayoutParams);
        view.setWithText(true);
        view.setWithText(true);
        if (index == INVALID || index > page.getChildCount()) {
        if (index == EMPTY_LOCATION_DRAG || index == LauncherItem.INVALID_CELL
                || index > page.getChildCount()) {
            page.addView(view);
            page.addView(view);
        } else {
        } else {
            page.addView(view, index);
            page.addView(view, index);
@@ -1573,7 +1570,8 @@ public class LauncherActivity extends AppCompatActivity implements
        iconLayoutParams.setGravity(Gravity.CENTER);
        iconLayoutParams.setGravity(Gravity.CENTER);
        view.setLayoutParams(iconLayoutParams);
        view.setLayoutParams(iconLayoutParams);
        view.setWithText(false);
        view.setWithText(false);
        if (index == LauncherItem.INVALID_CELL || index > mDock.getChildCount()) {
        if (index == LauncherItem.INVALID_CELL || index == EMPTY_LOCATION_DRAG
                || index > mDock.getChildCount()) {
            mDock.addView(view);
            mDock.addView(view);
        } else {
        } else {
            mDock.addView(view, index);
            mDock.addView(view, index);
@@ -1983,14 +1981,14 @@ public class LauncherActivity extends AppCompatActivity implements
                    }
                    }


                    // If hovering over an empty location, ignore drag/drop
                    // If hovering over an empty location, ignore drag/drop
                    if (index == INVALID) {
                    if (index == EMPTY_LOCATION_DRAG) {
                        discardCollidingApp();
                        discardCollidingApp();
                    }
                    }


                    // If hovering over another app icon
                    // If hovering over another app icon
                    // either move it or create a folder
                    // either move it or create a folder
                    // depending on time and distance
                    // depending on time and distance
                    if (index != INVALID) {
                    if (index != EMPTY_LOCATION_DRAG) {
                        BlissFrameLayout latestCollidingApp =
                        BlissFrameLayout latestCollidingApp =
                                (BlissFrameLayout) mDock.getChildAt(index);
                                (BlissFrameLayout) mDock.getChildAt(index);
                        if (collidingApp != latestCollidingApp) {
                        if (collidingApp != latestCollidingApp) {
@@ -2043,7 +2041,7 @@ public class LauncherActivity extends AppCompatActivity implements
                                            "Dock is already full",
                                            "Dock is already full",
                                            Toast.LENGTH_SHORT).show();
                                            Toast.LENGTH_SHORT).show();
                                } else {
                                } else {
                                    addAppToDock(movingApp, INVALID);
                                    addAppToDock(movingApp, EMPTY_LOCATION_DRAG);
                                }
                                }
                            }
                            }
                            movingApp.setVisibility(View.VISIBLE);
                            movingApp.setVisibility(View.VISIBLE);
@@ -2130,14 +2128,14 @@ public class LauncherActivity extends AppCompatActivity implements
                        }
                        }


                        // If hovering over an empty location, ignore drag/drop
                        // If hovering over an empty location, ignore drag/drop
                        if (index == INVALID) {
                        if (index == EMPTY_LOCATION_DRAG) {
                            discardCollidingApp();
                            discardCollidingApp();
                        }
                        }


                        // If hovering over another app icon
                        // If hovering over another app icon
                        // either move it or create a folder
                        // either move it or create a folder
                        // depending on time and distance
                        // depending on time and distance
                        if (index != INVALID) {
                        if (index != EMPTY_LOCATION_DRAG) {
                            View latestCollidingApp = getGridFromPage(page).getChildAt(index);
                            View latestCollidingApp = getGridFromPage(page).getChildAt(index);
                            if (collidingApp != latestCollidingApp) {
                            if (collidingApp != latestCollidingApp) {
                                if (collidingApp != null) {
                                if (collidingApp != null) {
@@ -2372,7 +2370,6 @@ public class LauncherActivity extends AppCompatActivity implements
                DatabaseManager.getManager(this).removeLauncherItem(activeFolder.id);
                DatabaseManager.getManager(this).removeLauncherItem(activeFolder.id);
            } else {
            } else {
                if (activeFolder.items.size() == 1) {
                if (activeFolder.items.size() == 1) {
                    Log.i(TAG, "removeAppFromFolder: here");
                    LauncherItem item = activeFolder.items.get(0);
                    LauncherItem item = activeFolder.items.get(0);
                    activeFolder.items.remove(item);
                    activeFolder.items.remove(item);
                    mFolderAppsViewPager.getAdapter().notifyDataSetChanged();
                    mFolderAppsViewPager.getAdapter().notifyDataSetChanged();
@@ -2578,7 +2575,7 @@ public class LauncherActivity extends AppCompatActivity implements
     */
     */
    private int getIndex(ViewGroup page, float x, float y) {
    private int getIndex(ViewGroup page, float x, float y) {
        float minDistance = Float.MAX_VALUE;
        float minDistance = Float.MAX_VALUE;
        int index = INVALID;
        int index = EMPTY_LOCATION_DRAG;




        for (int i = 0; i < page.getChildCount(); i++) {
        for (int i = 0; i < page.getChildCount(); i++) {