summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-23 09:31:32 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-23 09:31:32 +0100
commit74afdc0a7abbba3bd03fd783a40fbc554df1ff9b (patch)
tree5c13f28c2682fb185d3ca999fd823aaa269db61c
parent66161f4eb3e3b8b6457b3437123a50d286ca50f4 (diff)
Some changes
-rw-r--r--app/src/androidTest/java/app/fedilab/android/ExampleInstrumentedTest.java6
-rw-r--r--app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java207
-rw-r--r--app/src/fdroid/java/app/fedilab/android/activities/PeertubeBaseMainActivity.java262
-rw-r--r--app/src/fdroid/res/menu/video_menu.xml10
-rw-r--r--app/src/main/AndroidManifest.xml2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/InstanceActivity.java4
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminDomainBlockActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java101
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/activities/PeertubeMainActivity.java11
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java14
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/client/mastodon/RetrofitMastodonAPI.java7
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/AboutInstanceAdapter.java12
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/AccountsHorizontalListAdapter.java8
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/AccountsListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/ChannelListAdapter.java6
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/CommentListAdapter.java14
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/InstanceAdapter.java10
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/MenuAdapter.java8
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/MenuItemAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/OwnAccountsAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/PeertubeAdapter.java8
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/PeertubeNotificationsListAdapter.java6
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/drawer/PlaylistAdapter.java128
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayAccountsFragment.java4
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayChannelsFragment.java14
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayNotificationsFragment.java4
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayOverviewFragment.java4
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayPlaylistsFragment.java6
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplaySepiaSearchFragment.java12
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/DisplayVideosFragment.java18
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/fragment/SettingsFragment.java12
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/CacheDataSourceFactory.java1
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/Helper.java24
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/HelperInstance.java8
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/NotificationHelper.java4
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/RoundedBackgroundSpan.java6
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/SwitchAccountHelper.java6
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/services/RetrieveInfoService.java4
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/webview/MastalabWebChromeClient.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/webview/MastalabWebViewClient.java2
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/worker/NotificationsWorker.java9
-rw-r--r--app/src/main/res/drawables/mastodon/drawable/ic_repeat.xml2
-rw-r--r--app/src/main/res/drawables/mastodon/drawable/tag_follow.xml6
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_about.xml3
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_actions.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_conversation.xml6
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_edit_image.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_edit_profile.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_main.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_profile.xml8
-rw-r--r--app/src/main/res/layouts/mastodon/layout/datetime_picker.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_account.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_account_list.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_admin_account.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_admin_domain.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_announcement.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_cache.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_conversation.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_fetch_more.xml24
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_follow.xml8
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_instance_reg.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_keyword.xml5
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_list.xml3
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_reorder.xml6
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_report.xml3
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status.xml111
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status_art.xml10
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status_history.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status_pixelfed.xml6
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status_simple.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_suggestion.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_tag.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_tag_search.xml2
-rw-r--r--app/src/main/res/layouts/mastodon/layout/fragment_login_main.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/fragment_pagination.xml6
-rw-r--r--app/src/main/res/layouts/mastodon/layout/layout_media.xml42
-rw-r--r--app/src/main/res/layouts/mastodon/layout/nav_header_main.xml10
-rw-r--r--app/src/main/res/layouts/mastodon/layout/notification_badge.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/popup_add_filter.xml23
-rw-r--r--app/src/main/res/layouts/mastodon/layout/popup_admin_filter_accounts.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/popup_notification_settings.xml1
-rw-r--r--app/src/main/res/layouts/mastodon/layout/tab_custom_default_view.xml24
-rw-r--r--app/src/main/res/layouts/mastodon/layout/tab_custom_view.xml10
-rw-r--r--app/src/main/res/layouts/peertube/layout/activity_peertube.xml49
-rw-r--r--app/src/main/res/menus/peertube/menu/playlist_menu_peertube.xml6
-rw-r--r--app/src/main/res/values/colors.xml2
-rw-r--r--app/src/main/res/xml/pref_compose.xml4
-rw-r--r--app/src/main/res/xml/pref_interface.xml8
-rw-r--r--app/src/playstore/java/app/fedilab/android/services/EmbeddedDistrib.java3
-rw-r--r--app/src/playstore/res/menu/video_menu.xml9
-rw-r--r--app/src/test/java/app/fedilab/android/ExampleUnitTest.java4
91 files changed, 833 insertions, 603 deletions
diff --git a/app/src/androidTest/java/app/fedilab/android/ExampleInstrumentedTest.java b/app/src/androidTest/java/app/fedilab/android/ExampleInstrumentedTest.java
index f422a923b..7c6eed8d7 100644
--- a/app/src/androidTest/java/app/fedilab/android/ExampleInstrumentedTest.java
+++ b/app/src/androidTest/java/app/fedilab/android/ExampleInstrumentedTest.java
@@ -1,15 +1,15 @@
package app.fedilab.android;
+import static org.junit.Assert.assertEquals;
+
import android.content.Context;
-import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Test;
import org.junit.runner.RunWith;
-import static org.junit.Assert.*;
-
/**
* Instrumented test, which will execute on an Android device.
*
diff --git a/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java b/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java
new file mode 100644
index 000000000..229956318
--- /dev/null
+++ b/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java
@@ -0,0 +1,207 @@
+package app.fedilab.android.activities;
+/* Copyright 2021 Thomas Schneider
+ *
+ * This file is a part of TubeLab
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with TubeLab; if not,
+ * see <http://www.gnu.org/licenses>. */
+
+
+import static app.fedilab.android.peertube.helper.Helper.CAST_ID;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.webkit.MimeTypeMap;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
+import com.google.android.exoplayer2.SimpleExoPlayer;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+
+import app.fedilab.android.R;
+import app.fedilab.android.databinding.ActivityPeertubeBinding;
+import app.fedilab.android.mastodon.activities.BaseBarActivity;
+import app.fedilab.android.peertube.client.data.VideoData;
+import app.fedilab.android.peertube.helper.Helper;
+import su.litvak.chromecast.api.v2.ChromeCast;
+import su.litvak.chromecast.api.v2.MediaStatus;
+import su.litvak.chromecast.api.v2.Status;
+
+
+public class BasePeertubeActivity extends BaseBarActivity {
+
+ protected ActivityPeertubeBinding binding;
+ protected VideoData.Video peertube;
+ protected SimpleExoPlayer player;
+ protected String videoURL;
+ protected String subtitlesStr;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityPeertubeBinding.inflate(getLayoutInflater());
+ View view = binding.getRoot();
+ setContentView(view);
+ binding.minController.castPlay.setOnClickListener(v -> {
+ binding.minController.castLoader.setVisibility(View.VISIBLE);
+ if (PeertubeBaseMainActivity.chromeCast != null) {
+ new Thread(() -> {
+ try {
+ int icon = -1;
+ if (PeertubeBaseMainActivity.chromeCast.getMediaStatus().playerState == MediaStatus.PlayerState.PLAYING) {
+ PeertubeBaseMainActivity.chromeCast.pause();
+ icon = R.drawable.ic_baseline_play_arrow_32;
+ } else if (PeertubeBaseMainActivity.chromeCast.getMediaStatus().playerState == MediaStatus.PlayerState.PAUSED) {
+ PeertubeBaseMainActivity.chromeCast.play();
+ icon = R.drawable.ic_baseline_pause_32;
+ }
+ if (icon != -1) {
+ Handler mainHandler = new Handler(Looper.getMainLooper());
+ int finalIcon = icon;
+ Runnable myRunnable = () -> binding.minController.castPlay.setImageResource(finalIcon);
+ mainHandler.post(myRunnable);
+ }
+ Handler mainHandler = new Handler(Looper.getMainLooper());
+ Runnable myRunnable = () -> binding.minController.castLoader.setVisibility(View.GONE);
+ mainHandler.post(myRunnable);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }).start();
+ }
+ });
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == R.id.action_cast) {
+ if (PeertubeBaseMainActivity.chromeCasts != null && PeertubeBaseMainActivity.chromeCasts.size() > 0) {
+ String[] chromecast_choice = new String[PeertubeBaseMainActivity.chromeCasts.size()];
+ AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
+ alt_bld.setTitle(R.string.chromecast_choice);
+ int i = 0;
+ for (ChromeCast cc : PeertubeBaseMainActivity.chromeCasts) {
+ chromecast_choice[i] = cc.getTitle();
+ i++;
+ }
+ i = 0;
+ for (ChromeCast cc : PeertubeBaseMainActivity.chromeCasts) {
+ if (PeertubeBaseMainActivity.chromecastActivated && cc.isConnected()) {
+ break;
+ }
+ i++;
+ }
+
+ alt_bld.setSingleChoiceItems(chromecast_choice, i, (dialog, position) -> {
+ PeertubeBaseMainActivity.chromeCast = PeertubeBaseMainActivity.chromeCasts.get(position);
+ new Thread(() -> {
+ if (PeertubeBaseMainActivity.chromeCast != null) {
+ Intent intentBC = new Intent(Helper.RECEIVE_CAST_SETTINGS);
+ Bundle b = new Bundle();
+ if (PeertubeBaseMainActivity.chromecastActivated) {
+ b.putInt("displayed", 0);
+ intentBC.putExtras(b);
+ LocalBroadcastManager.getInstance(BasePeertubeActivity.this).sendBroadcast(intentBC);
+ Handler mainHandler = new Handler(Looper.getMainLooper());
+ Runnable myRunnable = () -> {
+ binding.doubleTapPlayerView.setVisibility(View.VISIBLE);
+ binding.minController.castMiniController.setVisibility(View.GONE);
+ };
+ mainHandler.post(myRunnable);
+
+ } else {
+ b.putInt("displayed", 1);
+ b.putParcelable("castedTube", peertube);
+ intentBC.putExtras(b);
+ LocalBroadcastManager.getInstance(B