66import android .content .Context ;
77import android .content .SharedPreferences ;
88import android .content .pm .PackageManager ;
9- import android .content .res .Configuration ;
109import android .graphics .drawable .Drawable ;
1110import android .media .AudioManager ;
1211import android .os .Build ;
1716import android .view .MenuItem ;
1817import android .view .View ;
1918import android .view .ViewGroup ;
20- import android .widget .LinearLayout ;
2119import android .widget .Toast ;
2220
2321import androidx .annotation .NonNull ;
2422import androidx .annotation .OptIn ;
2523import androidx .core .content .ContextCompat ;
2624import androidx .core .content .res .ResourcesCompat ;
2725import androidx .fragment .app .Fragment ;
26+ import androidx .lifecycle .ViewModelProvider ;
2827import androidx .media3 .common .MediaItem ;
2928import androidx .media3 .common .PlaybackParameters ;
3029import androidx .media3 .common .Player ;
5857import ml .docilealligator .infinityforreddit .utils .APIUtils ;
5958import ml .docilealligator .infinityforreddit .utils .SharedPreferencesUtils ;
6059import ml .docilealligator .infinityforreddit .utils .Utils ;
60+ import ml .docilealligator .infinityforreddit .viewmodels .ViewGalleryViewModel ;
6161import okhttp3 .OkHttpClient ;
6262
6363public class ViewImgurVideoFragment extends Fragment {
@@ -88,6 +88,7 @@ public class ViewImgurVideoFragment extends Fragment {
8888 @ Inject
8989 SimpleCache mSimpleCache ;
9090 private ViewImgurVideoFragmentBindingAdapter binding ;
91+ ViewGalleryViewModel viewGalleryViewModel ;
9192
9293 public ViewImgurVideoFragment () {
9394 // Required empty public constructor
@@ -112,41 +113,22 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
112113
113114 imgurMedia = getArguments ().getParcelable (EXTRA_IMGUR_VIDEO );
114115
115- if (!mSharedPreferences .getBoolean (SharedPreferencesUtils .VIDEO_PLAYER_IGNORE_NAV_BAR , false )) {
116- if (getResources ().getConfiguration ().orientation == Configuration .ORIENTATION_PORTRAIT || getResources ().getBoolean (R .bool .isTablet )) {
117- //Set player controller bottom margin in order to display it above the navbar
118- int resourceId = getResources ().getIdentifier ("navigation_bar_height" , "dimen" , "android" );
119- LinearLayout controllerLinearLayout = binding .getRoot ().findViewById (R .id .linear_layout_exo_playback_control_view );
120- ViewGroup .MarginLayoutParams params = (ViewGroup .MarginLayoutParams ) controllerLinearLayout .getLayoutParams ();
121- params .bottomMargin = getResources ().getDimensionPixelSize (resourceId );
122- } else {
123- //Set player controller right margin in order to display it above the navbar
124- int resourceId = getResources ().getIdentifier ("navigation_bar_height" , "dimen" , "android" );
125- LinearLayout controllerLinearLayout = binding .getRoot ().findViewById (R .id .linear_layout_exo_playback_control_view );
126- ViewGroup .MarginLayoutParams params = (ViewGroup .MarginLayoutParams ) controllerLinearLayout .getLayoutParams ();
127- params .rightMargin = getResources ().getDimensionPixelSize (resourceId );
128- }
129- }
130-
131- binding .getRoot ().setControllerVisibilityListener (new PlayerView .ControllerVisibilityListener () {
132- @ Override
133- public void onVisibilityChanged (int visibility ) {
134- switch (visibility ) {
135- case View .GONE :
136- activity .getWindow ().getDecorView ().setSystemUiVisibility (
137- View .SYSTEM_UI_FLAG_LAYOUT_STABLE
138- | View .SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
139- | View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
140- | View .SYSTEM_UI_FLAG_HIDE_NAVIGATION
141- | View .SYSTEM_UI_FLAG_FULLSCREEN
142- | View .SYSTEM_UI_FLAG_IMMERSIVE );
143- break ;
144- case View .VISIBLE :
145- activity .getWindow ().getDecorView ().setSystemUiVisibility (
146- View .SYSTEM_UI_FLAG_LAYOUT_STABLE
147- | View .SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
148- | View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN );
149- }
116+ binding .getRoot ().setControllerVisibilityListener ((PlayerView .ControllerVisibilityListener ) visibility -> {
117+ switch (visibility ) {
118+ case View .GONE :
119+ activity .getWindow ().getDecorView ().setSystemUiVisibility (
120+ View .SYSTEM_UI_FLAG_LAYOUT_STABLE
121+ | View .SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
122+ | View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
123+ | View .SYSTEM_UI_FLAG_HIDE_NAVIGATION
124+ | View .SYSTEM_UI_FLAG_FULLSCREEN
125+ | View .SYSTEM_UI_FLAG_IMMERSIVE );
126+ break ;
127+ case View .VISIBLE :
128+ activity .getWindow ().getDecorView ().setSystemUiVisibility (
129+ View .SYSTEM_UI_FLAG_LAYOUT_STABLE
130+ | View .SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
131+ | View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN );
150132 }
151133 });
152134
@@ -190,6 +172,20 @@ public void onVisibilityChanged(int visibility) {
190172 });
191173 }
192174
175+ viewGalleryViewModel = new ViewModelProvider (requireActivity ()).get (ViewGalleryViewModel .class );
176+ viewGalleryViewModel .getInsets ().observe (getViewLifecycleOwner (), insets -> {
177+ ViewGroup .LayoutParams lp = binding .getController ().getLayoutParams ();
178+ if (lp instanceof ViewGroup .MarginLayoutParams ) {
179+ ViewGroup .MarginLayoutParams marginParams = (ViewGroup .MarginLayoutParams ) lp ;
180+
181+ marginParams .bottomMargin = insets .bottom ;
182+ marginParams .setMarginStart (insets .left );
183+ marginParams .setMarginEnd (insets .right );
184+
185+ binding .getController ().setLayoutParams (marginParams );
186+ }
187+ });
188+
193189 return binding .getRoot ();
194190 }
195191
0 commit comments