diff --git a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java index 95656ccd7..a4a2f6b0f 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java @@ -1,153 +1,26 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; -import android.app.ProgressDialog; -import android.content.Context; -import android.content.pm.PackageManager; -import android.content.res.Configuration; -import android.os.Bundle; -import android.os.StrictMode; -import android.view.ActionMode; -import android.view.View; -import android.widget.Toast; -import androidx.annotation.NonNull; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; +import androidx.appcompat.app.AppCompatActivity; -import com.franmontiel.localechanger.LocaleChanger; -import com.google.android.material.snackbar.Snackbar; -import com.jaredrummler.cyanea.app.CyaneaAppCompatActivity; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; -import org.jetbrains.annotations.NotNull; - -import java.util.Timer; - -import app.fedilab.android.BuildConfig; import app.fedilab.android.helper.Helper; -import es.dmoral.toasty.Toasty; /** - * Created by Thomas on 12/12/2017. - * Base activity which updates security provider + * Created by Thomas on 16/05/2020. + * Fragment base activity which updates security provider */ @SuppressLint("Registered") -public class BaseFragmentActivity extends CyaneaAppCompatActivity { +public class BaseFragmentActivity extends AppCompatActivity { - public static final int READ_WRITE_STORAGE = 52; - public static Timer timer; - public static boolean canShowActionMode = true; - static { Helper.installProvider(); EmojiManager.install(new EmojiOneProvider()); } - private ProgressDialog mProgressDialog; - - @Override - protected void onCreate(Bundle savedInstanceState) { - - if (BuildConfig.DEBUG) { - StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() - .detectDiskReads() - .detectDiskWrites() - .detectAll() - .penaltyLog() - .build()); - StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() - .detectLeakedSqlLiteObjects() - .detectLeakedClosableObjects() - .detectLeakedRegistrationObjects() - .detectActivityLeaks() - .penaltyLog() - // .penaltyDeath() - .build()); - } - canShowActionMode = true; - super.onCreate(savedInstanceState); - - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (timer != null) { - timer.cancel(); - timer = null; - } - } - - - @Override - public void onConfigurationChanged(@NotNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - LocaleChanger.onConfigurationChanged(); - } - - @Override - protected void attachBaseContext(@NotNull Context newBase) { - newBase = LocaleChanger.configureBaseContext(newBase); - super.attachBaseContext(newBase); - } - - public boolean requestPermission(String permission) { - boolean isGranted = ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED; - if (!isGranted) { - ActivityCompat.requestPermissions( - this, - new String[]{permission}, - READ_WRITE_STORAGE); - } - return isGranted; - } - - public void isPermissionGranted(boolean isGranted, String permission) { - - } - - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (requestCode == READ_WRITE_STORAGE) { - isPermissionGranted(grantResults[0] == PackageManager.PERMISSION_GRANTED, permissions[0]); - } - } - - protected void showLoading(@NonNull String message) { - mProgressDialog = new ProgressDialog(this); - mProgressDialog.setMessage(message); - mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); - mProgressDialog.setCancelable(false); - mProgressDialog.show(); - } - - protected void hideLoading() { - if (mProgressDialog != null) { - mProgressDialog.dismiss(); - } - } - - protected void showSnackbar(@NonNull String message) { - View view = findViewById(android.R.id.content); - if (view != null) { - Snackbar.make(view, message, Snackbar.LENGTH_SHORT).show(); - } else { - Toasty.info(BaseFragmentActivity.this, message, Toast.LENGTH_SHORT).show(); - } - } - - - @Override - public void onActionModeStarted(ActionMode mode) { - if (!canShowActionMode) { - mode.finish(); - } - super.onActionModeStarted(mode); - - } } diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java index 7d67984e1..54982e19f 100644 --- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java @@ -411,52 +411,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube } } - private static class commentTask extends AsyncTask{ - - private WeakReference contextReference; - private Peertube peertube; - - commentTask(WeakReference contextReference, Peertube peertube){ - this.peertube = peertube; - this.contextReference = contextReference; - } - - @Override - protected app.fedilab.android.client.Entities.Status doInBackground(Void... voids) { - - List remoteStatuses = null; - if (peertube != null) { - APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid()); - if (search != null && search.getResults() != null) { - remoteStatuses = search.getResults().getStatuses(); - } - } - if( remoteStatuses != null && remoteStatuses.size() > 0) { - return remoteStatuses.get(0); - }else { - return null; - } - } - - @Override - protected void onPostExecute(app.fedilab.android.client.Entities.Status remoteStatuses) { - Intent intent = new Intent(contextReference.get(), TootActivity.class); - Bundle b = new Bundle(); - if (remoteStatuses == null) { - Toasty.error(contextReference.get(), contextReference.get().getString(R.string.toast_error), Toast.LENGTH_SHORT).show(); - return; - } - if (remoteStatuses.getReblog() != null) { - b.putParcelable("tootReply", remoteStatuses.getReblog()); - } else { - b.putParcelable("tootReply", remoteStatuses); - } - intent.putExtras(b); //Put your id to your next Intent - contextReference.get().startActivity(intent); - } - } - - public FullScreenMediaController.fullscreen getFullscreen() { return fullscreen; } @@ -601,12 +555,12 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT); int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB); ProgressiveMediaSource videoSource; - if( video_cache == 0) { + if (video_cache == 0) { DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this, Util.getUserAgent(PeertubeActivity.this, userAgent), null); videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService()))); - }else{ + } else { CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024); videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory) .createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService()))); @@ -684,7 +638,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube }); } - @Override public void onConfigurationChanged(@NotNull Configuration newConfig) { super.onConfigurationChanged(newConfig); @@ -767,7 +720,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube } } - @Override public void onResume() { super.onResume(); @@ -811,12 +763,12 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT); int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB); ProgressiveMediaSource videoSource; - if( video_cache == 0) { + if (video_cache == 0) { DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this, Util.getUserAgent(PeertubeActivity.this, userAgent), null); videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService()))); - }else{ + } else { CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024); videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory) .createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService()))); @@ -839,7 +791,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube } - private void initFullscreenDialog() { fullScreenDialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen) { @@ -860,7 +811,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube fullScreenDialog.show(); } - private void closeFullscreenDialog() { ((ViewGroup) playerView.getParent()).removeView(playerView); @@ -890,7 +840,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube resolution.setOnClickListener(v -> displayResolution()); } - private void changeColor() { if (peertube.getMyRating() != null && peertube.getMyRating().equals("like")) { changeDrawableColor(PeertubeActivity.this, R.drawable.ic_thumb_up_peertube, R.color.positive_thumbs); @@ -912,4 +861,49 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube playlists = apiResponse.getPlaylists(); } } + + private static class commentTask extends AsyncTask { + + private WeakReference contextReference; + private Peertube peertube; + + commentTask(WeakReference contextReference, Peertube peertube) { + this.peertube = peertube; + this.contextReference = contextReference; + } + + @Override + protected app.fedilab.android.client.Entities.Status doInBackground(Void... voids) { + + List remoteStatuses = null; + if (peertube != null) { + APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid()); + if (search != null && search.getResults() != null) { + remoteStatuses = search.getResults().getStatuses(); + } + } + if (remoteStatuses != null && remoteStatuses.size() > 0) { + return remoteStatuses.get(0); + } else { + return null; + } + } + + @Override + protected void onPostExecute(app.fedilab.android.client.Entities.Status remoteStatuses) { + Intent intent = new Intent(contextReference.get(), TootActivity.class); + Bundle b = new Bundle(); + if (remoteStatuses == null) { + Toasty.error(contextReference.get(), contextReference.get().getString(R.string.toast_error), Toast.LENGTH_SHORT).show(); + return; + } + if (remoteStatuses.getReblog() != null) { + b.putParcelable("tootReply", remoteStatuses.getReblog()); + } else { + b.putParcelable("tootReply", remoteStatuses); + } + intent.putExtras(b); //Put your id to your next Intent + contextReference.get().startActivity(intent); + } + } } diff --git a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java index 96edc6d7b..18ee706b0 100644 --- a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java @@ -737,6 +737,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt attachments.add(attachment); intent.putParcelableArrayListExtra("mediaArray", attachments); b.putInt("position", 1); + b.putInt("bgcolor", getResources().getColor(R.color.cyanea_primary_dark)); intent.putExtras(b); startActivity(intent); }); diff --git a/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java b/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java index 695456f1a..58807de8f 100644 --- a/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java @@ -24,7 +24,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.graphics.Color; import android.graphics.Point; import android.graphics.drawable.ColorDrawable; import android.net.Uri; @@ -49,11 +48,6 @@ import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; -import com.r0adkll.slidr.Slidr; -import com.r0adkll.slidr.model.SlidrConfig; -import com.r0adkll.slidr.model.SlidrInterface; -import com.r0adkll.slidr.model.SlidrPosition; - import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -72,7 +66,7 @@ import es.dmoral.toasty.Toasty; * Media Activity */ -public class SlideMediaActivity extends BaseActivity implements OnDownloadInterface { +public class SlideMediaActivity extends BaseFragmentActivity implements OnDownloadInterface { int flags; private ArrayList attachments; @@ -80,13 +74,13 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf private ViewPager mPager; private long downloadID; private boolean fullscreen; - private SlidrInterface slidrInterface; private TextView media_description; private Handler handler; - private boolean swipeEnabled; private int minTouch, maxTouch; private float startX; private float startY; + private int bgColor; + private BroadcastReceiver onDownloadComplete = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -131,21 +125,24 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf media_description = findViewById(R.id.media_description); final int med_desc_timeout = sharedpreferences.getInt(Helper.SET_MED_DESC_TIMEOUT, 3) * 1000; flags = getWindow().getDecorView().getSystemUiVisibility(); + if (getIntent().getExtras() != null) { + mediaPosition = getIntent().getExtras().getInt("position", 1); + bgColor = getIntent().getExtras().getInt("bgcolor", -1); + } - swipeEnabled = true; ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { - //actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(SlideMediaActivity.this, R.color.cyanea_primary))); + actionBar.setBackgroundDrawable(new ColorDrawable(bgColor)); LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); assert inflater != null; View view = inflater.inflate(R.layout.media_action_bar, new LinearLayout(SlideMediaActivity.this), false); - view.setBackground(new ColorDrawable(ContextCompat.getColor(SlideMediaActivity.this, R.color.cyanea_primary))); + view.setBackgroundColor(bgColor); actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close); TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title); - ImageView media_save = getSupportActionBar().getCustomView().findViewById(R.id.media_save); - ImageView media_share = getSupportActionBar().getCustomView().findViewById(R.id.media_share); + ImageView media_save = actionBar.getCustomView().findViewById(R.id.media_save); + ImageView media_share = actionBar.getCustomView().findViewById(R.id.media_share); toolbar_close.setOnClickListener(v -> finish()); media_save.setOnClickListener(view12 -> { int position = mPager.getCurrentItem(); @@ -198,8 +195,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf } attachments = getIntent().getParcelableArrayListExtra("mediaArray"); - if (getIntent().getExtras() != null) - mediaPosition = getIntent().getExtras().getInt("position", 1); + if (attachments == null || attachments.size() == 0) finish(); @@ -246,19 +242,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf } }); - SlidrConfig config = new SlidrConfig.Builder() - .sensitivity(1f) - .scrimColor(Color.BLACK) - .scrimStartAlpha(0.8f) - .scrimEndAlpha(0f) - .position(SlidrPosition.VERTICAL) - .velocityThreshold(2400) - .distanceThreshold(0.25f) - .edgeSize(0.18f) - .build(); - - slidrInterface = Slidr.attach(SlideMediaActivity.this, config); setFullscreen(true); Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); @@ -352,15 +336,6 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf super.onPostResume(); } - public void enableSliding(boolean enable) { - if (enable && !swipeEnabled) { - slidrInterface.unlock(); - swipeEnabled = true; - } else if (!enable && swipeEnabled) { - slidrInterface.lock(); - swipeEnabled = false; - } - } public boolean getFullScreen() { return this.fullscreen; @@ -419,6 +394,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf MediaSliderFragment mediaSliderFragment = new MediaSliderFragment(); bundle.putInt("position", position); bundle.putParcelable("attachment", attachments.get(position)); + bundle.putInt("bgcolor", bgColor); mediaSliderFragment.setArguments(bundle); return mediaSliderFragment; } diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index 312dec3ac..ebba63033 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -3708,7 +3708,8 @@ public class API { newStatus.setArt_attachment(attachment); apiResponseReply.getStatuses().add(newStatus); } - }catch (Exception ignored){} + } catch (Exception ignored) { + } } } } diff --git a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java index 0fce270be..859b8b011 100644 --- a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java @@ -173,6 +173,7 @@ public class ArtListAdapter extends RecyclerView.Adapter implements OnPostAction else if (status.getMedia_attachments() != null && status.getMedia_attachments().size() > 0) attachments.add(status.getMedia_attachments().get(0)); intent.putParcelableArrayListExtra("mediaArray", attachments); + b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark)); b.putInt("position", 1); intent.putExtras(b); context.startActivity(intent); diff --git a/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java index e346f8a24..8c4b76b14 100644 --- a/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java @@ -84,6 +84,7 @@ public class ImageAdapter extends RecyclerView.Adapter { } intent.putParcelableArrayListExtra("mediaArray", attachmentsTmp); b.putInt("position", (viewHolder.getAdapterPosition() + 1)); + b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark)); intent.putExtras(b); context.startActivity(intent); }); diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index bf028988e..e1d77bce0 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -1184,6 +1184,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On Bundle b = new Bundle(); intent.putParcelableArrayListExtra("mediaArray", notification.getStatus().getMedia_attachments()); b.putInt("position", finalPosition); + b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark)); intent.putExtras(b); context.startActivity(intent); }); diff --git a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java index 54b5126b7..de0124764 100644 --- a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java @@ -397,6 +397,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA Bundle b = new Bundle(); intent.putParcelableArrayListExtra("mediaArray", status.getMedia_attachments()); b.putInt("position", 1); + b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark)); intent.putExtras(b); context.startActivity(intent); }); diff --git a/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java index 432d62619..6731b7941 100644 --- a/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java @@ -134,6 +134,7 @@ public class PixelfedStoriesListAdapter extends RecyclerView.Adapter { Bundle b = new Bundle(); intent.putParcelableArrayListExtra("mediaArray", attachments); b.putInt("position", 1); + b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark)); intent.putExtras(b); context.startActivity(intent); }); diff --git a/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java b/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java index 37ec990cd..310b51280 100644 --- a/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java @@ -107,6 +107,7 @@ public class SliderAdapter extends SliderViewAdapter - new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute() + new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute() ); @@ -1028,7 +1027,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot int video_cache_size = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB); SeekBar set_video_cache_size = rootView.findViewById(R.id.set_video_cache_size); - set_video_cache_size.setMax(5*Helper.DEFAULT_VIDEO_CACHE_MB); + set_video_cache_size.setMax(5 * Helper.DEFAULT_VIDEO_CACHE_MB); set_video_cache_size.setProgress(video_cache_size); TextView set_video_cache = rootView.findViewById(R.id.set_video_cache); set_video_cache.setText(String.valueOf(video_cache_size)); @@ -1051,7 +1050,6 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot }); - int truncate_toots_size = sharedpreferences.getInt(Helper.SET_TRUNCATE_TOOTS_SIZE, 0); SeekBar set_truncate_size = rootView.findViewById(R.id.set_truncate_size); set_truncate_size.setMax(20); diff --git a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java index 1c963ba4a..38175411c 100644 --- a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Bitmap; +import android.graphics.Color; import android.graphics.drawable.Drawable; import android.media.MediaPlayer; import android.net.Uri; @@ -51,12 +52,16 @@ import com.github.chrisbanes.photoview.PhotoView; import com.google.android.exoplayer2.ExoPlayerFactory; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.SimpleExoPlayer; - import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.ui.PlayerView; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; +import com.r0adkll.slidr.Slidr; +import com.r0adkll.slidr.model.SlidrConfig; +import com.r0adkll.slidr.model.SlidrInterface; +import com.r0adkll.slidr.model.SlidrListener; +import com.r0adkll.slidr.model.SlidrPosition; import org.jetbrains.annotations.NotNull; @@ -107,6 +112,9 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl private ImageButton playView; private GLAudioVisualizationView visualizerView; private View rootView; + private SlidrInterface slidrInterface; + private boolean swipeEnabled; + private int bgColor; public MediaSliderFragment() { } @@ -120,8 +128,10 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl if (bundle != null) { attachment = bundle.getParcelable("attachment"); - } + bgColor = bundle.getInt("bgcolor", R.color.black); + } + swipeEnabled = true; message_ready = rootView.findViewById(R.id.message_ready); RelativeLayout content_audio = rootView.findViewById(R.id.content_audio); @@ -154,9 +164,9 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl if (!((SlideMediaActivity) context).getFullScreen()) { ((SlideMediaActivity) context).setFullscreen(true); } - ((SlideMediaActivity) context).enableSliding(false); + enableSliding(false); } else { - ((SlideMediaActivity) context).enableSliding(true); + enableSliding(true); } }); ProgressBar pbar_inf = rootView.findViewById(R.id.pbar_inf); @@ -173,6 +183,11 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl attachment.setType(type); } + if (bgColor != -1) { + RelativeLayout media_fragment_container = rootView.findViewById(R.id.media_fragment_container); + media_fragment_container.setBackgroundColor(bgColor); + } + switch (type.toLowerCase()) { case "image": pbar_inf.setScaleY(1f); @@ -242,12 +257,12 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT); int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB); ProgressiveMediaSource videoSource; - if( video_cache == 0) { + if (video_cache == 0) { DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context, Util.getUserAgent(context, userAgent), null); videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(uri); - }else{ + } else { CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(context, video_cache * 1024 * 1024, 5 * 1024 * 1024); videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory) .createMediaSource(uri); @@ -291,9 +306,7 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl webview_video.getSettings().setDomStorageEnabled(true); webview_video.getSettings().setAppCacheEnabled(true); String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT); - if (user_agent != null) { - webview_video.getSettings().setUserAgentString(user_agent); - } + webview_video.getSettings().setUserAgentString(user_agent); webview_video.getSettings().setMediaPlaybackRequiresUserGesture(false); webview_video.setWebViewClient(new MastalabWebViewClient((Activity) context)); webview_video.loadUrl(attachment.getUrl()); @@ -491,8 +504,49 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl visualizerView.onResume(); } catch (Exception ignored) { } + if (slidrInterface == null && rootView != null) { + slidrInterface = Slidr.replace(rootView.findViewById(R.id.media_fragment_container), new SlidrConfig.Builder().sensitivity(1f) + .scrimColor(Color.BLACK) + .scrimStartAlpha(0.8f) + .scrimEndAlpha(0f) + .position(SlidrPosition.VERTICAL) + .velocityThreshold(2400) + .distanceThreshold(0.25f) + .edgeSize(0.18f) + .listener(new SlidrListener() { + @Override + public void onSlideStateChanged(int state) { + + } + + @Override + public void onSlideChange(float percent) { + ((SlideMediaActivity) context).setFullscreen(true); + } + + @Override + public void onSlideOpened() { + + } + + @Override + public boolean onSlideClosed() { + return false; + } + }) + .build()); + } } + private void enableSliding(boolean enable) { + if (enable && !swipeEnabled) { + slidrInterface.unlock(); + swipeEnabled = true; + } else if (!enable && swipeEnabled) { + slidrInterface.lock(); + swipeEnabled = false; + } + } @Override public void onCompletion(MediaPlayer mp) { diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 50f324922..53a06f5f4 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -472,8 +472,6 @@ public class Helper { public static final String EP_AUTHORIZE = "/oauth/authorize"; - - //Proxy public static final String SET_PROXY_ENABLED = "set_proxy_enabled"; public static final String SET_PROXY_TYPE = "set_proxy_type"; diff --git a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java index 2e6c88b12..e366618a7 100644 --- a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java +++ b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java @@ -81,7 +81,7 @@ public class TextEditorDialogFragment extends DialogFragment { public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mAddTextEditText = view.findViewById(R.id.add_text_edit_text); - if( getActivity() != null) { + if (getActivity() != null) { mInputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); TextView mAddTextDoneTextView = view.findViewById(R.id.add_text_done_tv); diff --git a/app/src/main/res/layout/activity_media_pager.xml b/app/src/main/res/layout/activity_media_pager.xml index caca26c2a..00688cf9e 100644 --- a/app/src/main/res/layout/activity_media_pager.xml +++ b/app/src/main/res/layout/activity_media_pager.xml @@ -17,6 +17,7 @@ - - - - - - - - - - - - - - - - - - - - + android:layout_height="match_parent" + android:background="@android:color/transparent"> - - + + + android:gravity="center"> + + - - - - - - - - + android:layout_gravity="center" + android:gravity="center" + android:textColor="@color/dark_text" + android:textSize="12sp" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/media_action_bar.xml b/app/src/main/res/layout/media_action_bar.xml index 366a75f84..20e68d9ba 100644 --- a/app/src/main/res/layout/media_action_bar.xml +++ b/app/src/main/res/layout/media_action_bar.xml @@ -20,7 +20,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?colorPrimary" android:contentInsetStart="0dp" android:contentInsetLeft="0dp" android:contentInsetEnd="0dp" diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ed4f7064e..a1e3643bd 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -152,27 +152,28 @@ @color/black @color/light_link_toot @drawable/menu_selector + true