Skip to content

Commit

Permalink
Merge pull request #2444 from moneytoo/rotate
Browse files Browse the repository at this point in the history
Handle (auto)rotation changes during activity lifecycle
  • Loading branch information
theScrabi authored Jul 21, 2019
2 parents 3a6c22d + 7a44061 commit 4d8f66f
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.database.ContentObserver;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.ColorInt;
Expand Down Expand Up @@ -113,6 +115,8 @@ public final class MainVideoPlayer extends AppCompatActivity
private boolean isInMultiWindow;
private boolean isBackPressed;

private ContentObserver rotationObserver;

/*//////////////////////////////////////////////////////////////////////////
// Activity LifeCycle
//////////////////////////////////////////////////////////////////////////*/
Expand Down Expand Up @@ -147,6 +151,23 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
Toast.makeText(this, R.string.general_error, Toast.LENGTH_SHORT).show();
finish();
}

rotationObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if (globalScreenOrientationLocked()) {
final boolean lastOrientationWasLandscape = defaultPreferences.getBoolean(
getString(R.string.last_orientation_landscape_key), false);
setLandscape(lastOrientationWasLandscape);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
}
};
getContentResolver().registerContentObserver(
Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),
false, rotationObserver);
}

@Override
Expand Down Expand Up @@ -239,6 +260,9 @@ protected void onStop() {
playerState = createPlayerState();
playerImpl.destroy();

if (rotationObserver != null)
getContentResolver().unregisterContentObserver(rotationObserver);

isInMultiWindow = false;
isBackPressed = false;
}
Expand Down

0 comments on commit 4d8f66f

Please sign in to comment.