switch to fullscreen mode on rotate when viewing media

This commit is contained in:
Akinwale Ariwodola 2020-05-23 09:01:30 +01:00
parent d5b4e6990f
commit de4e6eee25
4 changed files with 137 additions and 68 deletions
app/src/main/java/io/lbry/browser

View file

@ -111,6 +111,7 @@ import io.lbry.browser.listener.DownloadActionListener;
import io.lbry.browser.listener.FetchChannelsListener;
import io.lbry.browser.listener.FetchClaimsListener;
import io.lbry.browser.listener.FilePickerListener;
import io.lbry.browser.listener.ScreenOrientationListener;
import io.lbry.browser.listener.SdkStatusListener;
import io.lbry.browser.listener.StoragePermissionListener;
import io.lbry.browser.listener.WalletBalanceListener;
@ -173,6 +174,8 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
private Map<String, Class> specialRouteFragmentClassMap;
private boolean inPictureInPictureMode;
@Getter
private boolean inFullscreenMode;
public static SimpleExoPlayer appPlayer;
public static Cache playerCache;
public static boolean playerReassigned;
@ -300,6 +303,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
private List<CameraPermissionListener> cameraPermissionListeners;
private List<DownloadActionListener> downloadActionListeners;
private List<FilePickerListener> filePickerListeners;
private List<ScreenOrientationListener> screenOrientationListeners;
private List<SdkStatusListener> sdkStatusListeners;
private List<StoragePermissionListener> storagePermissionListeners;
private List<WalletBalanceListener> walletBalanceListeners;
@ -394,31 +398,19 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
// setup uri bar
setupUriBar();
/*View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
findViewById(R.id.app_bar_main_container).setFitsSystemWindows(false);
findViewById(R.id.drawer_layout).setFitsSystemWindows(false);
} else {
findViewById(R.id.app_bar_main_container).setFitsSystemWindows(true);
findViewById(R.id.drawer_layout).setFitsSystemWindows(true);
}
}
});*/
// other
pendingSyncSetQueue = new ArrayList<>();
openNavFragments = new HashMap<>();
cameraPermissionListeners = new ArrayList<>();
downloadActionListeners = new ArrayList<>();
fetchChannelsListeners = new ArrayList<>();
fetchClaimsListeners = new ArrayList<>();
filePickerListeners = new ArrayList<>();
screenOrientationListeners = new ArrayList<>();
sdkStatusListeners = new ArrayList<>();
storagePermissionListeners = new ArrayList<>();
walletBalanceListeners = new ArrayList<>();
fetchClaimsListeners = new ArrayList<>();
fetchChannelsListeners = new ArrayList<>();
sdkStatusListeners.add(this);
@ -531,14 +523,30 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
checkNotificationOpenIntent(intent);
}
public void addCameraPermissionListener(CameraPermissionListener listener) {
if (!cameraPermissionListeners.contains(listener)) {
cameraPermissionListeners.add(listener);
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
switch (newConfig.orientation) {
case Configuration.ORIENTATION_PORTRAIT:
for (ScreenOrientationListener listener : screenOrientationListeners) {
listener.onPortraitOrientationEntered();
}
break;
case Configuration.ORIENTATION_LANDSCAPE:
for (ScreenOrientationListener listener : screenOrientationListeners) {
listener.onLandscapeOrientationEntered();
}
break;
}
}
public void removeCameraPermissionListener(CameraPermissionListener listener) {
cameraPermissionListeners.remove(listener);
public void addScreenOrientationListener(ScreenOrientationListener listener) {
if (!screenOrientationListeners.contains(listener)) {
screenOrientationListeners.add(listener);
}
}
public void removeScreenOrientationListener(ScreenOrientationListener listener) {
screenOrientationListeners.remove(listener);
}
public void addDownloadActionListener(DownloadActionListener listener) {
@ -561,6 +569,17 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
filePickerListeners.remove(listener);
}
public void addCameraPermissionListener(CameraPermissionListener listener) {
if (!cameraPermissionListeners.contains(listener)) {
cameraPermissionListeners.add(listener);
}
}
public void removeCameraPermissionListener(CameraPermissionListener listener) {
cameraPermissionListeners.remove(listener);
}
public void addSdkStatusListener(SdkStatusListener listener) {
if (!sdkStatusListeners.contains(listener)) {
sdkStatusListeners.add(listener);
@ -764,7 +783,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
private void renderFullMode() {
getSupportActionBar().show();
findViewById(R.id.content_main).setVisibility(View.VISIBLE);
findViewById(R.id.floating_balance_main_container).setVisibility(View.VISIBLE);
findViewById(R.id.floating_balance_main_container).setVisibility(inFullscreenMode ? View.INVISIBLE : View.VISIBLE);
Fragment fragment = getCurrentFragment();
if (!(fragment instanceof FileViewFragment)) {
findViewById(R.id.global_now_playing_card).setVisibility(View.VISIBLE);
@ -1294,6 +1313,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
}
public void enterFullScreenMode() {
inFullscreenMode = true;
hideFloatingWalletBalance();
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
@ -1337,6 +1357,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
if (actionBar != null) {
actionBar.show();
}
inFullscreenMode = false;
}
private void initKeyStore() {