diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index bd57471896..da1aa991d8 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -43,6 +43,7 @@ import org.dolphinemu.dolphinemu.services.GameFileCacheService; import org.dolphinemu.dolphinemu.overlay.InputOverlay; import org.dolphinemu.dolphinemu.overlay.InputOverlayPointer; import org.dolphinemu.dolphinemu.ui.main.MainActivity; +import org.dolphinemu.dolphinemu.ui.main.TvMainActivity; import org.dolphinemu.dolphinemu.ui.platform.Platform; import org.dolphinemu.dolphinemu.utils.ControllerMappingHelper; import org.dolphinemu.dolphinemu.utils.FileBrowserHelper; @@ -266,6 +267,15 @@ public final class EmulationActivity extends AppCompatActivity { super.onCreate(savedInstanceState); + if (TvUtil.isLeanback(getApplicationContext())) + { + TvMainActivity.skipRescanningLibrary(); + } + else + { + MainActivity.skipRescanningLibrary(); + } + if (savedInstanceState == null) { // Get params we were passed diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java index 947a5d9722..33626d32dc 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java @@ -20,9 +20,11 @@ import android.widget.Toast; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.ui.main.MainActivity; +import org.dolphinemu.dolphinemu.ui.main.TvMainActivity; import org.dolphinemu.dolphinemu.utils.DirectoryInitialization; import org.dolphinemu.dolphinemu.utils.DirectoryStateReceiver; import org.dolphinemu.dolphinemu.utils.FileBrowserHelper; +import org.dolphinemu.dolphinemu.utils.TvUtil; public final class SettingsActivity extends AppCompatActivity implements SettingsActivityView { @@ -46,6 +48,15 @@ public final class SettingsActivity extends AppCompatActivity implements Setting { super.onCreate(savedInstanceState); + if (TvUtil.isLeanback(getApplicationContext())) + { + TvMainActivity.skipRescanningLibrary(); + } + else + { + MainActivity.skipRescanningLibrary(); + } + setContentView(R.layout.activity_settings); Intent launcher = getIntent(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java index c4bbb9799f..1ca8af60a5 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java @@ -46,6 +46,7 @@ public final class MainActivity extends AppCompatActivity implements MainView private Toolbar mToolbar; private TabLayout mTabLayout; private FloatingActionButton mFab; + private static boolean sShouldRescanLibrary = true; private MainPresenter mPresenter = new MainPresenter(this, this); @@ -80,7 +81,14 @@ public final class MainActivity extends AppCompatActivity implements MainView { super.onResume(); mPresenter.addDirIfNeeded(this); - GameFileCacheService.startRescan(this); + if (sShouldRescanLibrary) + { + GameFileCacheService.startRescan(this); + } + else + { + sShouldRescanLibrary = true; + } } @Override @@ -284,4 +292,9 @@ public final class MainActivity extends AppCompatActivity implements MainView showGames(); GameFileCacheService.startLoad(this); } + + public static void skipRescanningLibrary() + { + sShouldRescanLibrary = false; + } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java index 68e4ddfb72..e62729dae4 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java @@ -37,6 +37,8 @@ import java.util.Collection; public final class TvMainActivity extends FragmentActivity implements MainView { + private static boolean sShouldRescanLibrary = true; + private MainPresenter mPresenter = new MainPresenter(this, this); private BrowseSupportFragment mBrowseFragment; @@ -65,7 +67,14 @@ public final class TvMainActivity extends FragmentActivity implements MainView { super.onResume(); mPresenter.addDirIfNeeded(this); - GameFileCacheService.startRescan(this); + if (sShouldRescanLibrary) + { + GameFileCacheService.startRescan(this); + } + else + { + sShouldRescanLibrary = true; + } } @Override @@ -316,4 +325,9 @@ public final class TvMainActivity extends FragmentActivity implements MainView return new ListRow(header, rowItems); } + + public static void skipRescanningLibrary() + { + sShouldRescanLibrary = false; + } }