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); | ||||
|         setVolumeControlStream(AudioManager.STREAM_MUSIC); | ||||
|  | ||||
|         WindowManager.LayoutParams lp = getWindow().getAttributes(); | ||||
|         lp.screenBrightness = PlayerHelper.getScreenBrightness(getApplicationContext()); | ||||
|         getWindow().setAttributes(lp); | ||||
|  | ||||
|         hideSystemUi(); | ||||
|         setContentView(R.layout.activity_main_player); | ||||
|         playerImpl = new VideoPlayerImpl(this); | ||||
| @@ -205,6 +209,9 @@ public final class MainVideoPlayer extends AppCompatActivity | ||||
|         if (DEBUG) Log.d(TAG, "onStop() called"); | ||||
|         super.onStop(); | ||||
|         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 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 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 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.TrackSelection; | ||||
| import com.google.android.exoplayer2.text.CaptionStyleCompat; | ||||
| import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; | ||||
| import com.google.android.exoplayer2.upstream.BandwidthMeter; | ||||
| import com.google.android.exoplayer2.util.MimeTypes; | ||||
| @@ -37,6 +37,7 @@ import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Locale; | ||||
| 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_FIT; | ||||
| @@ -260,6 +261,16 @@ public class PlayerHelper { | ||||
|  | ||||
|         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 | ||||
|     //////////////////////////////////////////////////////////////////////////// | ||||
| @@ -292,4 +303,23 @@ public class PlayerHelper { | ||||
|     private static boolean isAutoQueueEnabled(@NonNull final Context context, final boolean 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="use_inexact_seek_key" translatable="false">use_inexact_seek_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_value" translatable="false">360p</string> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Christian Schabesberger
					Christian Schabesberger