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

Commit 9d219685 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Loading internal default layout if partner layout fails to load

Bug: 18033885
Change-Id: I8399d0107cc3570c0e03d833601abf2cd194b3d3
parent e790dfdc
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -322,29 +322,34 @@ public class LauncherProvider extends ContentProvider {
                }
            }

            final boolean usingExternallyProvidedLayout = loader != null;
            if (loader == null) {
                loader = new DefaultLayoutParser(getContext(), mOpenHelper.mAppWidgetHost,
                        mOpenHelper, getContext().getResources(), getDefaultWorkspaceResourceId());
                loader = getDefaultLayoutParser();
            }

            // Populate favorites table with initial favorites
            SharedPreferences.Editor editor = sp.edit().remove(EMPTY_DATABASE_CREATED);
            mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), loader);
            editor.commit();
            if ((mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), loader) <= 0)
                    && usingExternallyProvidedLayout) {
                // Unable to load external layout. Cleanup and load the internal layout.
                createEmptyDB();
                mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(),
                        getDefaultLayoutParser());
            }
            sp.edit().remove(EMPTY_DATABASE_CREATED).commit();
        }
    }

    private DefaultLayoutParser getDefaultLayoutParser() {
        int defaultLayout = LauncherAppState.getInstance()
                .getDynamicGrid().getDeviceProfile().defaultLayoutId;
        return new DefaultLayoutParser(getContext(), mOpenHelper.mAppWidgetHost,
                mOpenHelper, getContext().getResources(), defaultLayout);
    }

    public void migrateLauncher2Shortcuts() {
        mOpenHelper.migrateLauncher2Shortcuts(mOpenHelper.getWritableDatabase(),
                Uri.parse(getContext().getString(R.string.old_launcher_provider_uri)));
    }

    private static int getDefaultWorkspaceResourceId() {
        LauncherAppState app = LauncherAppState.getInstance();
        DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
        return grid.defaultLayoutId;
    }

    private static interface ContentValuesCallback {
        public void onRow(ContentValues values);
    }