mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-30 23:03:00 +00:00 
			
		
		
		
	Launch video player in single task mode (fixes #154)
This commit is contained in:
		| @@ -29,6 +29,7 @@ | ||||
|         <activity | ||||
|             android:name=".detail.VideoItemDetailActivity" | ||||
|             android:label="@string/title_videoitem_detail" | ||||
|             android:launchMode="singleTask" | ||||
|             android:theme="@style/AppTheme"> | ||||
|             <meta-data | ||||
|                 android:name="android.support.PARENT_ACTIVITY" | ||||
|   | ||||
| @@ -111,6 +111,9 @@ class ActionBarHandler { | ||||
|  | ||||
|  | ||||
|     private int getDefaultResolution(final List<VideoStream> videoStreams) { | ||||
|         if (defaultPreferences == null) | ||||
|             return 0; | ||||
|  | ||||
|         String defaultResolution = defaultPreferences | ||||
|                 .getString(activity.getString(R.string.default_resolution_key), | ||||
|                         activity.getString(R.string.default_resolution_value)); | ||||
|   | ||||
| @@ -68,11 +68,27 @@ public class VideoItemDetailActivity extends AppCompatActivity { | ||||
|         // http://developer.android.com/guide/components/fragments.html | ||||
|         // | ||||
|  | ||||
|         Bundle arguments = new Bundle(); | ||||
|         if (savedInstanceState == null) { | ||||
|             handleIntent(getIntent()); | ||||
|         } else { | ||||
|             videoUrl = savedInstanceState.getString(VideoItemDetailFragment.VIDEO_URL); | ||||
|             currentStreamingService = savedInstanceState.getInt(VideoItemDetailFragment.STREAMING_SERVICE); | ||||
|             addFragment(savedInstanceState); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onNewIntent(Intent intent) { | ||||
|         super.onNewIntent(intent); | ||||
|         setIntent(intent); | ||||
|         handleIntent(intent); | ||||
|     } | ||||
|  | ||||
|     private void handleIntent(Intent intent) { | ||||
|         Bundle arguments = new Bundle(); | ||||
|         // this means the video was called though another app | ||||
|             if (getIntent().getData() != null) { | ||||
|                 videoUrl = getIntent().getData().toString(); | ||||
|         if (intent.getData() != null) { | ||||
|             videoUrl = intent.getData().toString(); | ||||
|             StreamingService[] serviceList = ServiceList.getServices(); | ||||
|             //StreamExtractor videoExtractor = null; | ||||
|             for (int i = 0; i < serviceList.length; i++) { | ||||
| @@ -95,25 +111,23 @@ public class VideoItemDetailActivity extends AppCompatActivity { | ||||
|                     PreferenceManager.getDefaultSharedPreferences(this) | ||||
|                             .getBoolean(getString(R.string.autoplay_through_intent_key), false)); | ||||
|         } else { | ||||
|                 videoUrl = getIntent().getStringExtra(VideoItemDetailFragment.VIDEO_URL); | ||||
|                 currentStreamingService = getIntent().getIntExtra(VideoItemDetailFragment.STREAMING_SERVICE, -1); | ||||
|             videoUrl = intent.getStringExtra(VideoItemDetailFragment.VIDEO_URL); | ||||
|             currentStreamingService = intent.getIntExtra(VideoItemDetailFragment.STREAMING_SERVICE, -1); | ||||
|             arguments.putString(VideoItemDetailFragment.VIDEO_URL, videoUrl); | ||||
|             arguments.putInt(VideoItemDetailFragment.STREAMING_SERVICE, currentStreamingService); | ||||
|             arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY, false); | ||||
|         } | ||||
|         addFragment(arguments); | ||||
|  | ||||
|         } else { | ||||
|             videoUrl = savedInstanceState.getString(VideoItemDetailFragment.VIDEO_URL); | ||||
|             currentStreamingService = savedInstanceState.getInt(VideoItemDetailFragment.STREAMING_SERVICE); | ||||
|             arguments = savedInstanceState; | ||||
|     } | ||||
|  | ||||
|     private void addFragment(final Bundle arguments) { | ||||
|         // Create the detail fragment and add it to the activity | ||||
|         // using a fragment transaction. | ||||
|         fragment = new VideoItemDetailFragment(); | ||||
|         fragment.setArguments(arguments); | ||||
|         getSupportFragmentManager().beginTransaction() | ||||
|                 .add(R.id.videoitem_detail_container, fragment) | ||||
|                 .replace(R.id.videoitem_detail_container, fragment) | ||||
|                 .commit(); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Felix Ableitner
					Felix Ableitner