mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-30 23:03:00 +00:00 
			
		
		
		
	Add a setting for the lock screen thumbnail feature
This commit is contained in:
		| @@ -25,13 +25,17 @@ import android.app.Service; | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.content.IntentFilter; | ||||
| import android.content.SharedPreferences; | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.Bitmap; | ||||
| import android.os.Build; | ||||
| import android.os.IBinder; | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.annotation.RequiresApi; | ||||
| import androidx.core.app.NotificationCompat; | ||||
|  | ||||
| import android.preference.PreferenceManager; | ||||
| import android.util.Log; | ||||
| import android.view.View; | ||||
| import android.widget.RemoteViews; | ||||
| @@ -77,6 +81,7 @@ public final class BackgroundPlayer extends Service { | ||||
|  | ||||
|     private BasePlayerImpl basePlayerImpl; | ||||
|     private LockManager lockManager; | ||||
|     private SharedPreferences sharedPreferences; | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|     // Service-Activity Binder | ||||
| @@ -109,6 +114,7 @@ public final class BackgroundPlayer extends Service { | ||||
|         if (DEBUG) Log.d(TAG, "onCreate() called"); | ||||
|         notificationManager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)); | ||||
|         lockManager = new LockManager(this); | ||||
|         sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); | ||||
|  | ||||
|         ThemeHelper.setTheme(this); | ||||
|         basePlayerImpl = new BasePlayerImpl(this); | ||||
| @@ -203,10 +209,7 @@ public final class BackgroundPlayer extends Service { | ||||
|         builder.setCustomBigContentView(bigNotRemoteView); | ||||
|  | ||||
|         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | ||||
|             basePlayerImpl.mediaSessionManager.setLockScreenArt( | ||||
|                     builder, | ||||
|                     getCenteredThumbnailBitmap() | ||||
|             ); | ||||
|             setLockScreenThumbnail(builder); | ||||
|         } | ||||
|  | ||||
|         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { | ||||
| @@ -215,6 +218,23 @@ public final class BackgroundPlayer extends Service { | ||||
|         return builder; | ||||
|     } | ||||
|  | ||||
|     @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | ||||
|     private void setLockScreenThumbnail(NotificationCompat.Builder builder) { | ||||
|         boolean isLockScreenThumbnailEnabled = sharedPreferences.getBoolean( | ||||
|                 getString(R.string.enable_lock_screen_video_thumbnail_key), | ||||
|                 true | ||||
|         ); | ||||
|  | ||||
|         if (isLockScreenThumbnailEnabled) { | ||||
|             basePlayerImpl.mediaSessionManager.setLockScreenArt( | ||||
|                     builder, | ||||
|                     getCenteredThumbnailBitmap() | ||||
|             ); | ||||
|         } else { | ||||
|             basePlayerImpl.mediaSessionManager.clearLockScreenArt(builder); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Nullable | ||||
|     private Bitmap getCenteredThumbnailBitmap() { | ||||
|         int screenWidth = Resources.getSystem().getDisplayMetrics().widthPixels; | ||||
|   | ||||
| @@ -74,6 +74,20 @@ public class MediaSessionManager { | ||||
|         builder.setStyle(mediaStyle); | ||||
|     } | ||||
|  | ||||
|     @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | ||||
|     public void clearLockScreenArt(NotificationCompat.Builder builder) { | ||||
|         mediaSession.setMetadata( | ||||
|                 new MediaMetadataCompat.Builder() | ||||
|                         .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, null) | ||||
|                         .build() | ||||
|         ); | ||||
|  | ||||
|         MediaStyle mediaStyle = new MediaStyle() | ||||
|                 .setMediaSession(mediaSession.getSessionToken()); | ||||
|  | ||||
|         builder.setStyle(mediaStyle); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Should be called on player destruction to prevent leakage.BitmapUtils | ||||
|      */ | ||||
|   | ||||
| @@ -175,6 +175,7 @@ | ||||
|     <string name="main_page_content_key" translatable="false">main_page_content</string> | ||||
|     <string name="enable_playback_resume_key" translatable="false">enable_playback_resume</string> | ||||
|     <string name="enable_playback_state_lists_key" translatable="false">enable_playback_state_lists</string> | ||||
|     <string name="enable_lock_screen_video_thumbnail_key" translatable="false">enable_lock_screen_video_thumbnail</string> | ||||
|  | ||||
|     <string name="import_data" translatable="false">import_data</string> | ||||
|     <string name="export_data" translatable="false">export_data</string> | ||||
|   | ||||
| @@ -58,7 +58,9 @@ | ||||
|     <string name="kore_not_found">Kore app not found. Install it?</string> | ||||
|     <string name="kore_package" translatable="false">org.xbmc.kore</string> | ||||
|     <string name="show_play_with_kodi_title">Show \"Play with Kodi\" option</string> | ||||
|     <string name="enable_lock_screen_video_thumbnail_title">Enable lock screen video thumbnail</string> | ||||
|     <string name="show_play_with_kodi_summary">Display an option to play a video via Kodi media center</string> | ||||
|     <string name="enable_lock_screen_video_thumbnail_summary">When using the background player a video thumbnail will be displayed on the lock screen</string> | ||||
|     <string name="play_audio">Audio</string> | ||||
|     <string name="default_audio_format_title">Default audio format</string> | ||||
|     <string name="default_video_format_title">Default video format</string> | ||||
|   | ||||
| @@ -81,6 +81,13 @@ | ||||
|             android:summary="@string/show_play_with_kodi_summary" | ||||
|             android:title="@string/show_play_with_kodi_title"/> | ||||
|  | ||||
|         <SwitchPreference | ||||
|             app:iconSpaceReserved="false" | ||||
|             android:defaultValue="false" | ||||
|             android:key="@string/enable_lock_screen_video_thumbnail_key" | ||||
|             android:summary="@string/enable_lock_screen_video_thumbnail_summary" | ||||
|             android:title="@string/enable_lock_screen_video_thumbnail_title"/> | ||||
|  | ||||
|     </PreferenceCategory> | ||||
|  | ||||
|     <PreferenceCategory | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 k1rakishou
					k1rakishou