diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-07-19 16:53:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-19 16:53:47 +0200 |
commit | 84a8eaaee0bf110b371043a5f5187d7f601f4b5f (patch) | |
tree | 324e92fad936c21dcc03b0af5730dc595cb74f4e /app/src/main/java | |
parent | abece8a3407508dd7ec168ad3365b94a7db23ea7 (diff) | |
parent | e53db91ee38173be33fb2273070ec2f76d05763a (diff) | |
download | AntennaPod-84a8eaaee0bf110b371043a5f5187d7f601f4b5f.zip |
Merge pull request #4292 from tonytamsf/landscape-1
FIX: In landscape mode, the album art overwhelms the playback screen #4009
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index 7593188b7..4e8cfbf86 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -1,16 +1,23 @@ package de.danoeh.antennapod.fragment; +import android.content.Context; +import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; +import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; + import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; + import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.FitCenter; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; @@ -60,6 +67,11 @@ public class CoverFragment extends Fragment { return root; } + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + configureForOrientation(getResources().getConfiguration()); + } + private void loadMediaInfo() { if (disposable != null) { disposable.dispose(); @@ -71,13 +83,12 @@ public class CoverFragment extends Fragment { } else { emitter.onComplete(); } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(media -> { - this.media = media; - displayMediaInfo(media); - }, error -> Log.e(TAG, Log.getStackTraceString(error))); + }).subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(media -> { + this.media = media; + displayMediaInfo(media); + }, error -> Log.e(TAG, Log.getStackTraceString(error))); } private void displayMediaInfo(@NonNull Playable media) { @@ -160,6 +171,39 @@ public class CoverFragment extends Fragment { } @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + configureForOrientation(newConfig); + } + + public float convertDpToPixel(float dp) { + Context context = this.getActivity().getApplicationContext(); + return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); + } + + private void configureForOrientation(Configuration newConfig) { + LinearLayout mainContainer = getView().findViewById(R.id.cover_fragment); + ViewGroup.LayoutParams params = imgvCover.getLayoutParams(); + + if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { + mainContainer.setOrientation(LinearLayout.VERTICAL); + if (newConfig.screenWidthDp > 0) { + params.width = (int) (convertDpToPixel(newConfig.screenWidthDp) * .80); + params.height = params.width; + imgvCover.setLayoutParams(params); + } + } else { + mainContainer.setOrientation(LinearLayout.HORIZONTAL); + if (newConfig.screenHeightDp > 0) { + params.height = (int) (convertDpToPixel(newConfig.screenHeightDp) * .40); + params.width = params.height; + imgvCover.setLayoutParams(params); + } + } + } + + @Override public void onDestroyView() { super.onDestroyView(); |