diff --git a/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java b/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java index 4270b6b8a90bd8ca121f4bf7dd4b7d406d97fc01..8141d07c65bc92786f55a3d45dc8694b36aae347 100755 --- a/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java +++ b/app/src/main/java/foundation/e/blisslauncher/BlissLauncher.java @@ -58,10 +58,6 @@ public class BlissLauncher extends Application { iconsPackHandler = new IconsHandler(this); } - public void initAppProvider() { - connectAppProvider(); - } - private void connectAppProvider() { mAppProvider = AppProvider.getInstance(this); } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java index e475ead2d51615fea51d630981047e487430f3a5..20805762d3a707d7b05b937cfbff8eaeb700c6af 100755 --- a/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/customviews/HorizontalPager.java @@ -152,7 +152,6 @@ public class HorizontalPager extends ViewGroup implements Insettable { @Override protected void dispatchDraw(Canvas canvas) { - Log.d(TAG, "dispatchDraw() called with: canvas = [" + canvas + "]"); final long drawingTime = getDrawingTime(); // todo be smarter about which children need drawing final int count = getChildCount(); diff --git a/app/src/main/java/foundation/e/blisslauncher/core/database/DatabaseManager.java b/app/src/main/java/foundation/e/blisslauncher/core/database/DatabaseManager.java index 5d38be04630472096e041f83dcfb812042287a97..9819fbc7959655341ac801911c6833df4f66adb2 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/database/DatabaseManager.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/database/DatabaseManager.java @@ -1,7 +1,6 @@ package foundation.e.blisslauncher.core.database; import android.content.Context; -import android.util.Log; import android.widget.GridLayout; import java.util.ArrayList; @@ -19,6 +18,8 @@ public class DatabaseManager { private AppExecutors mAppExecutors; + private static final String TAG = "DatabaseManager"; + private static volatile DatabaseManager INSTANCE; private Context mContext; @@ -44,7 +45,9 @@ public class DatabaseManager { } public void saveLayouts(List pages, GridLayout dock) { - mAppExecutors.diskIO().execute(() -> saveLauncherItems(pages, dock)); + List tempPages = pages; + GridLayout tempDock = dock; + mAppExecutors.diskIO().execute(() -> saveLauncherItems(tempPages, tempDock)); } private void saveLauncherItems(final List pages, final GridLayout dock) { @@ -99,7 +102,6 @@ public class DatabaseManager { } } } - Log.i("Database", "saveLauncherItems: "+items.size()); LauncherDB.getDatabase(mContext).launcherDao().insertAll(items); } diff --git a/app/src/main/java/foundation/e/blisslauncher/core/executors/AppExecutors.java b/app/src/main/java/foundation/e/blisslauncher/core/executors/AppExecutors.java index 4adfd108edcf31cb7698e4b4596dfb71c17741e8..be58e20827435c8ad5ecf9bd701f3e6531ba4b86 100644 --- a/app/src/main/java/foundation/e/blisslauncher/core/executors/AppExecutors.java +++ b/app/src/main/java/foundation/e/blisslauncher/core/executors/AppExecutors.java @@ -1,14 +1,15 @@ package foundation.e.blisslauncher.core.executors; import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class AppExecutors { private static final AppExecutors ourInstance = new AppExecutors(); - private Executor diskExecutor; - private Executor appExecutor; + private ExecutorService diskExecutor; + private ExecutorService appExecutor; private Executor searchExecutor; - private Executor shortcutExecutor; + private ExecutorService shortcutExecutor; public static AppExecutors getInstance() { return ourInstance; @@ -20,15 +21,15 @@ public class AppExecutors { shortcutExecutor = Executors.newSingleThreadExecutor(); } - public Executor diskIO(){ + public ExecutorService diskIO(){ return diskExecutor; } - public Executor appIO(){ + public ExecutorService appIO(){ return appExecutor; } - public Executor shortcutIO() { + public ExecutorService shortcutIO() { return shortcutExecutor; } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/AppProvider.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/AppProvider.java index 71f1ee4c5fc2de46e25d45119efb6241e2b83162..71cba2d5bbdbc498662f3220d4758d5a9d3b5790 100644 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/AppProvider.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/AppProvider.java @@ -506,7 +506,9 @@ public class AppProvider { } public void clear() { - sInstance = null; + this.sInstance = null; + mLauncherItems = new ArrayList<>(); + mAppsRepository.updateAppsRelay(Collections.emptyList()); } public synchronized boolean isRunning() { diff --git a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java index 3c372f249ded0b22b07fc94e87f0e0ed3bc15a86..b87c942ae3eea515c992c33a8420e2b61c3739ef 100755 --- a/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java @@ -127,6 +127,7 @@ import foundation.e.blisslauncher.core.utils.UserHandle; import foundation.e.blisslauncher.features.notification.NotificationRepository; import foundation.e.blisslauncher.features.notification.NotificationService; import foundation.e.blisslauncher.features.shortcuts.DeepShortcutManager; +import foundation.e.blisslauncher.features.shortcuts.ShortcutKey; import foundation.e.blisslauncher.features.suggestions.AutoCompleteAdapter; import foundation.e.blisslauncher.features.suggestions.SearchSuggestionUtil; import foundation.e.blisslauncher.features.suggestions.SuggestionProvider; @@ -267,6 +268,8 @@ public class LauncherActivity extends AppCompatActivity implements mLauncherView = LayoutInflater.from(this).inflate( foundation.e.blisslauncher.R.layout.activity_main, null); + //BlissLauncher.getApplication(LauncherActivity.this).getAppProvider().reload(); + setContentView(mLauncherView); setupViews(); @@ -356,14 +359,14 @@ public class LauncherActivity extends AppCompatActivity implements private void createOrUpdateIconGrid() { getCompositeDisposable().add( AppsRepository.getAppsRepository().getAppsRelay() - .distinct() + .distinctUntilChanged() .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(new DisposableObserver>() { @Override public void onNext(List launcherItems) { if (launcherItems == null || launcherItems.size() <= 0) { BlissLauncher.getApplication(LauncherActivity.this).getAppProvider().reload(); - } else if (!allAppsDisplayed) { + } else if(!allAppsDisplayed) { showApps(launcherItems); } } @@ -498,7 +501,7 @@ public class LauncherActivity extends AppCompatActivity implements ApplicationItem applicationItem = AppUtils.createAppItem(this, appAddEvent.getPackageName(), appAddEvent.getUserHandle()); addLauncherItem(applicationItem); - DatabaseManager.getManager(this).saveLayouts(pages, mDock); + //DatabaseManager.getManager(this).saveLayouts(pages, mDock); if (moveTo != -1) { mHorizontalPager.setCurrentPage(moveTo); moveTo = -1; @@ -953,7 +956,6 @@ public class LauncherActivity extends AppCompatActivity implements if (isWobbling) handleWobbling(false); createUI(launcherItems); - subscribeToEvents(); isUiDone = true; createPageChangeListener(); createFolderTitleListener(); @@ -962,9 +964,11 @@ public class LauncherActivity extends AppCompatActivity implements createIndicator(); createOrUpdateBadgeCount(); allAppsDisplayed = true; + subscribeToEvents(); } private void subscribeToEvents() { + Log.d(TAG, "subscribeToEvents() called"); events = EventRelay.getInstance(); events.subscribe(new EventsObserverImpl(this)); } @@ -1242,7 +1246,7 @@ public class LauncherActivity extends AppCompatActivity implements currentPageNumber = 0; mHorizontalPager.setUiCreated(true); - DatabaseManager.getManager(this).saveLayouts(pages, mDock); + //DatabaseManager.getManager(this).saveLayouts(pages, mDock); mDock.setEnabled(true); setUpSwipeSearchContainer(); } @@ -1629,6 +1633,7 @@ public class LauncherActivity extends AppCompatActivity implements } else { page.addView(view, index); } + //DatabaseManager.getManager(this).saveLayouts(pages, mDock); } /** @@ -1956,6 +1961,7 @@ public class LauncherActivity extends AppCompatActivity implements startActivity(i); } } else if (launcherItem.itemType == Constants.ITEM_TYPE_SHORTCUT) { + DeepShortcutManager.getInstance(this).unpinShortcut(ShortcutKey.fromItem((ShortcutItem) launcherItem)); removeShortcutView((ShortcutItem) launcherItem, blissFrameLayout); } }); @@ -2922,7 +2928,6 @@ public class LauncherActivity extends AppCompatActivity implements @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); - final boolean alreadyOnHome = hasWindowFocus() && ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); diff --git a/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/AddItemActivity.java b/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/AddItemActivity.java index 391237bbfa6f08b58db3f4b10632169fcf419b11..b9cfb5cd798d0b2bdb7ff9aceefd08aacde84098 100644 --- a/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/AddItemActivity.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/AddItemActivity.java @@ -16,19 +16,21 @@ public class AddItemActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - LauncherApps launcherApps = (LauncherApps) getSystemService(Context.LAUNCHER_APPS_SERVICE); - LauncherApps.PinItemRequest request = launcherApps.getPinItemRequest(getIntent()); - if (request == null) { - finish(); - return; - } + if (getIntent() != null && getIntent().getAction().equalsIgnoreCase(LauncherApps.ACTION_CONFIRM_PIN_SHORTCUT)) { + LauncherApps launcherApps = (LauncherApps) getSystemService(Context.LAUNCHER_APPS_SERVICE); + LauncherApps.PinItemRequest request = launcherApps.getPinItemRequest(getIntent()); + if (request == null) { + finish(); + return; + } - if (request.getRequestType() == LauncherApps.PinItemRequest.REQUEST_TYPE_SHORTCUT) { - InstallShortcutReceiver.queueShortcut( - new ShortcutInfoCompat(request.getShortcutInfo()), this); - request.accept(); - finish(); - return; + if (request.getRequestType() == LauncherApps.PinItemRequest.REQUEST_TYPE_SHORTCUT) { + InstallShortcutReceiver.queueShortcut( + new ShortcutInfoCompat(request.getShortcutInfo()), this.getApplicationContext()); + request.accept(); + finish(); + } } + } } diff --git a/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/InstallShortcutReceiver.java b/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/InstallShortcutReceiver.java index 2a4afd5422d88df0af0a95219cfb7803c753fb97..e7cf14e88b95f85a8203c0260af94c7c0e952189 100644 --- a/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/InstallShortcutReceiver.java +++ b/app/src/main/java/foundation/e/blisslauncher/features/shortcuts/InstallShortcutReceiver.java @@ -52,16 +52,18 @@ public class InstallShortcutReceiver extends BroadcastReceiver { } ShortcutItem shortcutItem = createShortcutItem(data, context); EventRelay.getInstance().push(new ShortcutAddEvent(shortcutItem)); - context.startActivity(new Intent(Intent.ACTION_MAIN) + /*context.startActivity(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_HOME) .setPackage(context.getPackageName()) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));*/ } public static void queueShortcut(ShortcutInfoCompat info, Context context) { + Log.d(TAG, "queueShortcut() called with: info = [" + info + "], context = [" + context + "]"); UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); ShortcutItem shortcutItem = new ShortcutItem(); shortcutItem.id = info.getId(); + Log.i(TAG, "queueShortcut: "+ shortcutItem.id); shortcutItem.user = new UserHandle(userManager.getSerialNumberForUser(info.getUserHandle()), info.getUserHandle()); shortcutItem.packageName = info.getPackage(); @@ -73,10 +75,10 @@ public class InstallShortcutReceiver extends BroadcastReceiver { icon); shortcutItem.launchIntent = info.makeIntent(); EventRelay.getInstance().push(new ShortcutAddEvent(shortcutItem)); - context.startActivity(new Intent(Intent.ACTION_MAIN) + /*context.startActivity(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_HOME) .setPackage(context.getPackageName()) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));*/ } private static ShortcutItem createShortcutItem(Intent data, Context context) {