mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 15:23:00 +00:00 
			
		
		
		
	Merge branch 'remeber_brightness' of https://github.com/acrosca/NewPipe into test
This commit is contained in:
		| @@ -119,6 +119,10 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) getWindow().setStatusBarColor(Color.BLACK); |         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) getWindow().setStatusBarColor(Color.BLACK); | ||||||
|         setVolumeControlStream(AudioManager.STREAM_MUSIC); |         setVolumeControlStream(AudioManager.STREAM_MUSIC); | ||||||
|  |  | ||||||
|  |         WindowManager.LayoutParams lp = getWindow().getAttributes(); | ||||||
|  |         lp.screenBrightness = PlayerHelper.getScreenBrightness(getApplicationContext()); | ||||||
|  |         getWindow().setAttributes(lp); | ||||||
|  |  | ||||||
|         hideSystemUi(); |         hideSystemUi(); | ||||||
|         setContentView(R.layout.activity_main_player); |         setContentView(R.layout.activity_main_player); | ||||||
|         playerImpl = new VideoPlayerImpl(this); |         playerImpl = new VideoPlayerImpl(this); | ||||||
| @@ -205,6 +209,9 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         if (DEBUG) Log.d(TAG, "onStop() called"); |         if (DEBUG) Log.d(TAG, "onStop() called"); | ||||||
|         super.onStop(); |         super.onStop(); | ||||||
|         playerImpl.destroy(); |         playerImpl.destroy(); | ||||||
|  |  | ||||||
|  |         PlayerHelper.setScreenBrightness(getApplicationContext(), | ||||||
|  |                 getWindow().getAttributes().screenBrightness); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /*////////////////////////////////////////////////////////////////////////// |     /*////////////////////////////////////////////////////////////////////////// | ||||||
| @@ -884,7 +891,9 @@ public final class MainVideoPlayer extends AppCompatActivity | |||||||
|         private final boolean isPlayerGestureEnabled = PlayerHelper.isPlayerGestureEnabled(getApplicationContext()); |         private final boolean isPlayerGestureEnabled = PlayerHelper.isPlayerGestureEnabled(getApplicationContext()); | ||||||
|  |  | ||||||
|         private final float stepsBrightness = 15, stepBrightness = (1f / stepsBrightness), minBrightness = .01f; |         private final float stepsBrightness = 15, stepBrightness = (1f / stepsBrightness), minBrightness = .01f; | ||||||
|         private float currentBrightness = .5f; |         private float currentBrightness = getWindow().getAttributes().screenBrightness > 0 | ||||||
|  |                 ? getWindow().getAttributes().screenBrightness | ||||||
|  |                 : 0.5f; | ||||||
|  |  | ||||||
|         private int currentVolume, maxVolume = playerImpl.getAudioReactor().getMaxVolume(); |         private int currentVolume, maxVolume = playerImpl.getAudioReactor().getMaxVolume(); | ||||||
|         private final float stepsVolume = 15, stepVolume = (float) Math.ceil(maxVolume / stepsVolume), minVolume = 0; |         private final float stepsVolume = 15, stepVolume = (float) Math.ceil(maxVolume / stepsVolume), minVolume = 0; | ||||||
|   | |||||||
| @@ -9,9 +9,9 @@ import android.support.annotation.Nullable; | |||||||
| import android.view.accessibility.CaptioningManager; | import android.view.accessibility.CaptioningManager; | ||||||
|  |  | ||||||
| import com.google.android.exoplayer2.SeekParameters; | import com.google.android.exoplayer2.SeekParameters; | ||||||
|  | import com.google.android.exoplayer2.text.CaptionStyleCompat; | ||||||
| import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; | import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; | ||||||
| import com.google.android.exoplayer2.trackselection.TrackSelection; | import com.google.android.exoplayer2.trackselection.TrackSelection; | ||||||
| import com.google.android.exoplayer2.text.CaptionStyleCompat; |  | ||||||
| import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; | import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; | ||||||
| import com.google.android.exoplayer2.upstream.BandwidthMeter; | import com.google.android.exoplayer2.upstream.BandwidthMeter; | ||||||
| import com.google.android.exoplayer2.util.MimeTypes; | import com.google.android.exoplayer2.util.MimeTypes; | ||||||
| @@ -37,6 +37,7 @@ import java.util.HashSet; | |||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Locale; | import java.util.Locale; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  | import java.util.concurrent.TimeUnit; | ||||||
|  |  | ||||||
| import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FILL; | import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FILL; | ||||||
| import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT; | import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT; | ||||||
| @@ -260,6 +261,16 @@ public class PlayerHelper { | |||||||
|  |  | ||||||
|         return captioningManager.getFontScale(); |         return captioningManager.getFontScale(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static float getScreenBrightness(@NonNull final Context context) { | ||||||
|  |         //a value of less than 0, the default, means to use the preferred screen brightness | ||||||
|  |         return getScreenBrightness(context, -1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public static void setScreenBrightness(@NonNull final Context context, final float setScreenBrightness) { | ||||||
|  |         setScreenBrightness(context, setScreenBrightness, System.currentTimeMillis()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     //////////////////////////////////////////////////////////////////////////// |     //////////////////////////////////////////////////////////////////////////// | ||||||
|     // Private helpers |     // Private helpers | ||||||
|     //////////////////////////////////////////////////////////////////////////// |     //////////////////////////////////////////////////////////////////////////// | ||||||
| @@ -292,4 +303,23 @@ public class PlayerHelper { | |||||||
|     private static boolean isAutoQueueEnabled(@NonNull final Context context, final boolean b) { |     private static boolean isAutoQueueEnabled(@NonNull final Context context, final boolean b) { | ||||||
|         return getPreferences(context).getBoolean(context.getString(R.string.auto_queue_key), b); |         return getPreferences(context).getBoolean(context.getString(R.string.auto_queue_key), b); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private static void setScreenBrightness(@NonNull final Context context, final float screenBrightness, final long timestamp) { | ||||||
|  |         SharedPreferences.Editor editor = getPreferences(context).edit(); | ||||||
|  |         editor.putFloat(context.getString(R.string.screen_brightness_key), screenBrightness); | ||||||
|  |         editor.putLong(context.getString(R.string.screen_brightness_timestamp_key), timestamp); | ||||||
|  |         editor.apply(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private static float getScreenBrightness(@NonNull final Context context, final float screenBrightness) { | ||||||
|  |         SharedPreferences sp = getPreferences(context); | ||||||
|  |         long timestamp = sp.getLong(context.getString(R.string.screen_brightness_timestamp_key), 0); | ||||||
|  |         // hypothesis: 4h covers a viewing block, eg evening. External lightning conditions will change in the next | ||||||
|  |         // viewing block so we fall back to the default brightness | ||||||
|  |         if ((System.currentTimeMillis() - timestamp) > TimeUnit.HOURS.toMillis(4)) { | ||||||
|  |             return screenBrightness; | ||||||
|  |         } else { | ||||||
|  |             return sp.getFloat(context.getString(R.string.screen_brightness_key), screenBrightness); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -22,6 +22,8 @@ | |||||||
|     <string name="popup_remember_size_pos_key" translatable="false">popup_remember_size_pos_key</string> |     <string name="popup_remember_size_pos_key" translatable="false">popup_remember_size_pos_key</string> | ||||||
|     <string name="use_inexact_seek_key" translatable="false">use_inexact_seek_key</string> |     <string name="use_inexact_seek_key" translatable="false">use_inexact_seek_key</string> | ||||||
|     <string name="auto_queue_key" translatable="false">auto_queue_key</string> |     <string name="auto_queue_key" translatable="false">auto_queue_key</string> | ||||||
|  |     <string name="screen_brightness_key" translatable="false">screen_brightness_key</string> | ||||||
|  |     <string name="screen_brightness_timestamp_key" translatable="false">screen_brightness_timestamp_key</string> | ||||||
|  |  | ||||||
|     <string name="default_resolution_key" translatable="false">default_resolution</string> |     <string name="default_resolution_key" translatable="false">default_resolution</string> | ||||||
|     <string name="default_resolution_value" translatable="false">360p</string> |     <string name="default_resolution_value" translatable="false">360p</string> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Christian Schabesberger
					Christian Schabesberger