diff --git a/app/src/main/java/com/amaze/filemanager/database/TabHandler.java b/app/src/main/java/com/amaze/filemanager/database/TabHandler.java index 1a93facec..02c68d715 100644 --- a/app/src/main/java/com/amaze/filemanager/database/TabHandler.java +++ b/app/src/main/java/com/amaze/filemanager/database/TabHandler.java @@ -54,6 +54,10 @@ public class TabHandler { database.tabDao().insertTab(tab).subscribeOn(Schedulers.io()).subscribe(); } + public void update(Tab tab) { + database.tabDao().update(tab); + } + public void clear() { database.tabDao().clear().subscribeOn(Schedulers.io()).subscribe(); } diff --git a/app/src/main/java/com/amaze/filemanager/database/daos/TabDao.java b/app/src/main/java/com/amaze/filemanager/database/daos/TabDao.java index f19925644..2466d6c30 100644 --- a/app/src/main/java/com/amaze/filemanager/database/daos/TabDao.java +++ b/app/src/main/java/com/amaze/filemanager/database/daos/TabDao.java @@ -32,6 +32,7 @@ import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; import androidx.room.Transaction; +import androidx.room.Update; import io.reactivex.Completable; import io.reactivex.Single; @@ -56,6 +57,9 @@ public interface TabDao { @Query("SELECT * FROM " + TABLE_TAB + " WHERE " + COLUMN_TAB_NO + " = :tabNo") Single find(int tabNo); + @Update(onConflict = OnConflictStrategy.REPLACE) + void update(Tab tab); + @Query("SELECT * FROM " + TABLE_TAB) Single> list(); } diff --git a/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java b/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java index 0d3b82518..f4806ad05 100644 --- a/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java +++ b/app/src/main/java/com/amaze/filemanager/ui/fragments/TabFragment.java @@ -189,7 +189,6 @@ public class TabFragment extends Fragment implements ViewPager.OnPageChangeListe // Getting old path from database before clearing TabHandler tabHandler = TabHandler.getInstance(); - tabHandler.clear(); int i = 1; for (Fragment fragment : fragments) { @@ -198,13 +197,12 @@ public class TabFragment extends Fragment implements ViewPager.OnPageChangeListe if (i - 1 == MainActivity.currentTab && i == pos) { updateBottomBar(m); mainActivity.getDrawer().selectCorrectDrawerItemForPath(m.getCurrentPath()); + if (m.openMode == OpenMode.FILE) { + tabHandler.update(new Tab(i, m.getCurrentPath(), m.home)); + } else { + tabHandler.update(new Tab(i, m.home, m.home)); + } } - if (m.openMode == OpenMode.FILE) { - tabHandler.addTab(new Tab(i, m.getCurrentPath(), m.home)); - } else { - tabHandler.addTab(new Tab(i, m.home, m.home)); - } - i++; } }