diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f13d98..4edaeac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -52,7 +52,7 @@
android:windowSoftInputMode="stateAlwaysHidden" />
diff --git a/app/src/main/java/app/fedilab/fedilabtube/LoginActivity.java b/app/src/main/java/app/fedilab/fedilabtube/LoginActivity.java
index 11f08a6..eed7189 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/LoginActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/LoginActivity.java
@@ -35,19 +35,20 @@ import androidx.core.content.ContextCompat;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
-import org.json.JSONException;
import org.json.JSONObject;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays;
-import java.util.HashMap;
-import app.fedilab.fedilabtube.client.HttpsConnection;
+import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
+import app.fedilab.fedilabtube.client.entities.Oauth;
+import app.fedilab.fedilabtube.client.entities.OauthParams;
+import app.fedilab.fedilabtube.client.entities.RefreshToken;
import app.fedilab.fedilabtube.helper.Helper;
import es.dmoral.toasty.Toasty;
-import static app.fedilab.fedilabtube.client.HttpsConnection.updateCredential;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.updateCredential;
public class LoginActivity extends AppCompatActivity {
@@ -55,8 +56,6 @@ public class LoginActivity extends AppCompatActivity {
//Peertube notification type
public static int NEW_VIDEO_FROM_SUBSCRIPTION = 1;
- // public static int NEW_COMMENT_ON_MY_VIDEO = 2;
- // public static int NEW_VIDEO_ABUSE_FOR_MODERATORS = 3;
public static int BLACKLIST_ON_MY_VIDEO = 4;
public static int UNBLACKLIST_ON_MY_VIDEO = 5;
public static int MY_VIDEO_PUBLISHED = 6;
@@ -67,7 +66,6 @@ public class LoginActivity extends AppCompatActivity {
private EditText login_uid;
private EditText login_passwd;
private Button connectionButton;
- private String actionToken;
private TextInputEditText login_instance;
@Override
@@ -139,10 +137,7 @@ public class LoginActivity extends AppCompatActivity {
Toasty.error(LoginActivity.this, getString(R.string.email_error)).show();
return;
}
-
-
connectionButton.setEnabled(false);
- final HashMap parameters = new HashMap<>();
String instance, host;
if (!BuildConfig.full_instances) {
String[] emailArray = login_uid.getText().toString().split("@");
@@ -164,27 +159,21 @@ public class LoginActivity extends AppCompatActivity {
if (Arrays.asList(Helper.openid).contains(host) && !BuildConfig.full_instances) {
new Thread(() -> {
try {
- actionToken = "/api/v1/oauth-clients/local";
- String response = new HttpsConnection(LoginActivity.this).get("https://" + instance + actionToken, 30, null, null);
- if (response == null) {
+ Oauth oauth = new RetrofitPeertubeAPI(LoginActivity.this, instance, null).oauthClient();
+ if (oauth == null) {
runOnUiThread(() -> {
connectionButton.setEnabled(true);
Toasty.error(LoginActivity.this, getString(R.string.client_error), Toast.LENGTH_LONG).show();
});
return;
}
- JSONObject resobj;
- resobj = new JSONObject(response);
- client_id = resobj.get(Helper.CLIENT_ID).toString();
- client_secret = resobj.get(Helper.CLIENT_SECRET).toString();
+ client_id = oauth.getClient_id();
+ client_secret = oauth.getClient_secret();
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Helper.CLIENT_ID, client_id);
editor.putString(Helper.CLIENT_SECRET, client_secret);
editor.apply();
- parameters.clear();
- parameters.put(Helper.CLIENT_ID, sharedpreferences.getString(Helper.CLIENT_ID, null));
- parameters.put(Helper.CLIENT_SECRET, sharedpreferences.getString(Helper.CLIENT_SECRET, null));
Intent intent = new Intent(LoginActivity.this, WebviewConnectActivity.class);
Bundle b = new Bundle();
b.putString("url", "https://" + Helper.getPeertubeUrl(host) + "/plugins/auth-openid-connect/0.0.1/auth/openid-connect");
@@ -201,89 +190,65 @@ public class LoginActivity extends AppCompatActivity {
}).start();
} else {
- parameters.clear();
- parameters.put(Helper.CLIENT_NAME, Helper.CLIENT_NAME_VALUE);
- parameters.put(Helper.REDIRECT_URIS, Helper.REDIRECT_CONTENT);
- parameters.put(Helper.SCOPES, Helper.OAUTH_SCOPES_PEERTUBE);
- parameters.put(Helper.WEBSITE, Helper.WEBSITE_VALUE);
new Thread(() -> {
try {
- actionToken = "/api/v1/oauth-clients/local";
- String response = new HttpsConnection(LoginActivity.this).get("https://" + instance + actionToken, 30, parameters, null);
- if (response == null) {
+ Oauth oauth = new RetrofitPeertubeAPI(LoginActivity.this, instance, null).oauthClient();
+ if (oauth == null) {
runOnUiThread(() -> {
connectionButton.setEnabled(true);
Toasty.error(LoginActivity.this, getString(R.string.client_error), Toast.LENGTH_LONG).show();
});
return;
}
- JSONObject resobj;
+
+ client_id = oauth.getClient_id();
+ client_secret = oauth.getClient_secret();
+ SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putString(Helper.CLIENT_ID, client_id);
+ editor.putString(Helper.CLIENT_SECRET, client_secret);
+ editor.apply();
+ OauthParams oauthParams = new OauthParams();
+ oauthParams.setClient_id(sharedpreferences.getString(Helper.CLIENT_ID, null));
+ oauthParams.setClient_secret(sharedpreferences.getString(Helper.CLIENT_SECRET, null));
+ oauthParams.setGrant_type("password");
try {
- resobj = new JSONObject(response);
- client_id = resobj.get(Helper.CLIENT_ID).toString();
- client_secret = resobj.get(Helper.CLIENT_SECRET).toString();
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
- SharedPreferences.Editor editor = sharedpreferences.edit();
- editor.putString(Helper.CLIENT_ID, client_id);
- editor.putString(Helper.CLIENT_SECRET, client_secret);
- editor.apply();
- parameters.clear();
- parameters.put(Helper.CLIENT_ID, sharedpreferences.getString(Helper.CLIENT_ID, null));
- parameters.put(Helper.CLIENT_SECRET, sharedpreferences.getString(Helper.CLIENT_SECRET, null));
- parameters.put("grant_type", "password");
+ oauthParams.setUsername(URLEncoder.encode(login_uid.getText().toString().trim(), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ oauthParams.setUsername(login_uid.getText().toString().trim());
+ }
+ try {
+ oauthParams.setPassword(URLEncoder.encode(login_passwd.getText().toString(), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ oauthParams.setPassword(login_passwd.getText().toString());
+ }
+
+ try {
+ RefreshToken refreshToken = new RetrofitPeertubeAPI(LoginActivity.this, instance, null).manageToken(oauthParams);
+ proceedLogin(refreshToken, host);
+ } catch (final Exception e) {
try {
- parameters.put("username", URLEncoder.encode(login_uid.getText().toString().trim(), "UTF-8"));
- } catch (UnsupportedEncodingException e) {
- parameters.put("username", login_uid.getText().toString().trim());
+ oauthParams.setUsername(URLEncoder.encode(login_uid.getText().toString().toLowerCase().trim(), "UTF-8"));
+ } catch (UnsupportedEncodingException e2) {
+ oauthParams.setUsername(login_uid.getText().toString().toLowerCase().trim());
}
try {
- parameters.put("password", URLEncoder.encode(login_passwd.getText().toString(), "UTF-8"));
- } catch (UnsupportedEncodingException e) {
- parameters.put("password", login_passwd.getText().toString());
+ RefreshToken refreshToken = new RetrofitPeertubeAPI(LoginActivity.this, instance, null).manageToken(oauthParams);
+ proceedLogin(refreshToken, host);
+ } catch (final Exception e2) {
+ e2.printStackTrace();
+ runOnUiThread(() -> {
+ connectionButton.setEnabled(true);
+ String message;
+ if (e2.getLocalizedMessage() != null && e2.getLocalizedMessage().trim().length() > 0)
+ message = e2.getLocalizedMessage();
+ else if (e2.getMessage() != null && e2.getMessage().trim().length() > 0)
+ message = e2.getMessage();
+ else
+ message = getString(R.string.client_error);
+ Toasty.error(LoginActivity.this, message, Toast.LENGTH_LONG).show();
+ });
}
- parameters.put("scope", "user");
- String oauthUrl = "/api/v1/users/token";
- try {
- String responseLogin = new HttpsConnection(LoginActivity.this).post("https://" + instance + oauthUrl, 30, parameters, null);
- proceedLogin(responseLogin, host);
- } catch (final Exception e) {
- parameters.clear();
- parameters.put(Helper.CLIENT_ID, sharedpreferences.getString(Helper.CLIENT_ID, null));
- parameters.put(Helper.CLIENT_SECRET, sharedpreferences.getString(Helper.CLIENT_SECRET, null));
- parameters.put("grant_type", "password");
- try {
- parameters.put("username", URLEncoder.encode(login_uid.getText().toString().toLowerCase().trim(), "UTF-8"));
- } catch (UnsupportedEncodingException e2) {
- parameters.put("username", login_uid.getText().toString().toLowerCase().trim());
- }
- try {
- parameters.put("password", URLEncoder.encode(login_passwd.getText().toString(), "UTF-8"));
- } catch (UnsupportedEncodingException e2) {
- parameters.put("password", login_passwd.getText().toString());
- }
- parameters.put("scope", "user");
- try {
- String responseLogin = new HttpsConnection(LoginActivity.this).post("https://" + instance + oauthUrl, 30, parameters, null);
- proceedLogin(responseLogin, host);
- } catch (final Exception e2) {
- e2.printStackTrace();
- runOnUiThread(() -> {
- connectionButton.setEnabled(true);
- String message;
- if (e2.getLocalizedMessage() != null && e2.getLocalizedMessage().trim().length() > 0)
- message = e2.getLocalizedMessage();
- else if (e2.getMessage() != null && e2.getMessage().trim().length() > 0)
- message = e2.getMessage();
- else
- message = getString(R.string.client_error);
- Toasty.error(LoginActivity.this, message, Toast.LENGTH_LONG).show();
- });
- }
- }
- } catch (JSONException e) {
- e.printStackTrace();
- e.printStackTrace();
- runOnUiThread(() -> connectionButton.setEnabled(true));
}
} catch (final Exception e) {
e.printStackTrace();
@@ -305,24 +270,16 @@ public class LoginActivity extends AppCompatActivity {
});
}
- private void proceedLogin(String responseLogin, String host) {
+ private void proceedLogin(RefreshToken refreshToken, String host) {
runOnUiThread(() -> {
JSONObject resobjLogin;
- try {
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
- SharedPreferences.Editor editor = sharedpreferences.edit();
- resobjLogin = new JSONObject(responseLogin);
- String token = resobjLogin.getString("access_token");
- String refresh_token = resobjLogin.getString("refresh_token");
- editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token);
- editor.putString(Helper.PREF_INSTANCE, host);
- editor.apply();
- //Update the account with the token;
- updateCredential(LoginActivity.this, token, client_id, client_secret, refresh_token, host);
- } catch (JSONException e) {
- e.printStackTrace();
- runOnUiThread(() -> connectionButton.setEnabled(true));
- }
+ SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, refreshToken.getAccess_token());
+ editor.putString(Helper.PREF_INSTANCE, host);
+ editor.apply();
+ //Update the account with the token;
+ updateCredential(LoginActivity.this, refreshToken.getAccess_token(), client_id, client_secret, refreshToken.getRefresh_token(), host);
});
}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
index 52a01ce..337bec2 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
@@ -45,7 +45,9 @@ import org.jetbrains.annotations.NotNull;
import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
import app.fedilab.fedilabtube.client.data.AccountData.Account;
+import app.fedilab.fedilabtube.client.entities.OauthParams;
import app.fedilab.fedilabtube.client.entities.PeertubeInformation;
+import app.fedilab.fedilabtube.client.entities.WellKnownNodeinfo;
import app.fedilab.fedilabtube.helper.Helper;
import app.fedilab.fedilabtube.services.RetrieveInfoService;
import app.fedilab.fedilabtube.sqlite.AccountDAO;
@@ -164,7 +166,12 @@ public class MainActivity extends AppCompatActivity {
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
Account account = new AccountDAO(MainActivity.this, db).getUniqAccount(userId, instance);
if (account != null) {
- new Thread(() -> new RetrofitPeertubeAPI(MainActivity.this).refreshToken(account.getClient_id(), account.getClient_secret(),account.getToken())).start();
+ OauthParams oauthParams = new OauthParams();
+ oauthParams.setGrant_type("refresh_token");
+ oauthParams.setClient_id(account.getClient_id());
+ oauthParams.setClient_secret(account.getClient_secret());
+ oauthParams.setRefresh_token(account.getRefresh_token());
+ new Thread(() -> new RetrofitPeertubeAPI(MainActivity.this).manageToken(oauthParams)).start();
}
} else {
instanceItem.setVisible(true);
@@ -285,8 +292,8 @@ public class MainActivity extends AppCompatActivity {
(dialog, which) -> new Thread(() -> {
try {
String newInstance = input.getText().toString().trim();
- InstanceNodeInfo instanceNodeInfo = new RetrofitPeertubeAPI(MainActivity.this).displayNodeInfo(newInstance);
- if (instanceNodeInfo.getName() != null && instanceNodeInfo.getName().trim().toLowerCase().compareTo("peertube") == 0) {
+ WellKnownNodeinfo.NodeInfo instanceNodeInfo = new RetrofitPeertubeAPI(MainActivity.this).getNodeInfo(newInstance);
+ if (instanceNodeInfo.getSoftware() != null && instanceNodeInfo.getSoftware().getName().trim().toLowerCase().compareTo("peertube") == 0) {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Helper.PREF_INSTANCE, newInstance);
editor.commit();
diff --git a/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java b/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
index 62d94e2..aac322c 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
@@ -83,9 +83,7 @@ import com.google.android.exoplayer2.util.Util;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
@@ -97,7 +95,7 @@ import app.fedilab.fedilabtube.client.data.CommentData.Comment;
import app.fedilab.fedilabtube.client.data.PlaylistData.Playlist;
import app.fedilab.fedilabtube.client.data.VideoData;
import app.fedilab.fedilabtube.client.entities.File;
-import app.fedilab.fedilabtube.client.entities.PlaylistParams;
+import app.fedilab.fedilabtube.client.entities.Item;
import app.fedilab.fedilabtube.client.entities.Report;
import app.fedilab.fedilabtube.drawer.CommentListAdapter;
import app.fedilab.fedilabtube.helper.CacheDataSourceFactory;
@@ -115,6 +113,10 @@ import app.fedilab.fedilabtube.webview.MastalabWebChromeClient;
import app.fedilab.fedilabtube.webview.MastalabWebViewClient;
import es.dmoral.toasty.Toasty;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.ADD_COMMENT;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.RATEVIDEO;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_VIDEO;
import static app.fedilab.fedilabtube.helper.Helper.getAttColor;
import static app.fedilab.fedilabtube.helper.Helper.getLiveInstance;
import static app.fedilab.fedilabtube.helper.Helper.isLoggedIn;
@@ -142,7 +144,7 @@ public class PeertubeActivity extends AppCompatActivity {
private ImageView send;
private TextView add_comment_read;
private EditText add_comment_write;
- private List playlistForVideo;
+ private List playlistForVideo;
private List playlists;
private PlaylistsVM playlistsViewModel;
private boolean playInMinimized;
@@ -371,8 +373,8 @@ public class PeertubeActivity extends AppCompatActivity {
dialogBuilder.setNeutralButton(R.string.cancel, (dialog, id) -> dialog.dismiss());
androidx.appcompat.app.AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
- report_video.setOnClickListener(v -> reportAlert(RetrofitPeertubeAPI.reportType.VIDEO, alertDialog));
- report_account.setOnClickListener(v -> reportAlert(PeertubeAPI.reportType.ACCOUNT, alertDialog));
+ report_video.setOnClickListener(v -> reportAlert(REPORT_VIDEO, alertDialog));
+ report_account.setOnClickListener(v -> reportAlert(REPORT_ACCOUNT, alertDialog));
return true;
}
return super.onOptionsItemSelected(item);
@@ -467,7 +469,7 @@ public class PeertubeActivity extends AppCompatActivity {
String comment = add_comment_write.getText().toString();
if (comment.trim().length() > 0) {
PostActionsVM viewModel = new ViewModelProvider(PeertubeActivity.this).get(PostActionsVM.class);
- viewModel.post(RetrofitPeertubeAPI.ActionType.PEERTUBECOMMENT, peertube.getAccount().getId(), comment, null).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(PeertubeAPI.StatusAction.PEERTUBECOMMENT, apiResponse1));
+ viewModel.comment(ADD_COMMENT, peertube.getId(), null, comment).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(ADD_COMMENT, apiResponse1));
add_comment_write.setText("");
add_comment_read.setVisibility(View.VISIBLE);
add_comment_write.setVisibility(View.GONE);
@@ -488,12 +490,12 @@ public class PeertubeActivity extends AppCompatActivity {
String title = null;
boolean isPresent = false;
String elementId = null;
- PlaylistParams playlistElementFinal = null;
- for (PlaylistParams playlistElement : playlistForVideo) {
- if (playlist.getId().equals(playlistElement.getPlaylistId())) {
+ Playlist playlistElementFinal = null;
+ for (Playlist playlistElement : playlistForVideo) {
+ if (playlist.getId().equals(playlistElement.getId())) {
title = "✔ " + playlist.getDisplayName();
isPresent = true;
- elementId = playlistElement.getPlaylistElementId();
+ elementId = playlistElement.getId();
playlistElementFinal = playlistElement;
break;
}
@@ -504,7 +506,7 @@ public class PeertubeActivity extends AppCompatActivity {
MenuItem item = popup.getMenu().add(0, 0, Menu.NONE, title);
boolean finalIsPresent = isPresent;
String finalElementId = elementId;
- PlaylistParams finalPlaylistElementFinal = playlistElementFinal;
+ Playlist finalPlaylistElementFinal = playlistElementFinal;
item.setOnMenuItemClickListener(item1 -> {
item1.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
item1.setActionView(new View(PeertubeActivity.this));
@@ -526,9 +528,8 @@ public class PeertubeActivity extends AppCompatActivity {
} else {
item1.setTitle("✔ " + playlist.getDisplayName());
playlistsViewModel.manage(PlaylistsVM.action.ADD_VIDEOS, playlist, peertube.getId()).observe(PeertubeActivity.this, apiResponse3 -> manageVIewPlaylists(PlaylistsVM.action.ADD_VIDEOS, apiResponse3));
- PlaylistParams playlistElement = new PlaylistParams();
- playlistElement.setPlaylistElementId(null);
- playlistElement.setPlaylistId(playlist.getId());
+ Playlist playlistElement = new Playlist();
+ playlistElement.setId(playlist.getId());
playlistForVideo.add(playlistElement);
}
return false;
@@ -541,7 +542,7 @@ public class PeertubeActivity extends AppCompatActivity {
if (peertube.isCommentsEnabled()) {
CommentVM commentViewModel = new ViewModelProvider(PeertubeActivity.this).get(CommentVM.class);
- commentViewModel.getComment(peertubeInstance, videoId).observe(PeertubeActivity.this, this::manageVIewComment);
+ commentViewModel.getThread(videoId).observe(PeertubeActivity.this, this::manageVIewComment);
write_comment_container.setVisibility(View.VISIBLE);
} else {
@@ -567,7 +568,7 @@ public class PeertubeActivity extends AppCompatActivity {
if (isLoggedIn(PeertubeActivity.this)) {
String newState = peertube.getMyRating().equals("like") ? "none" : "like";
PostActionsVM viewModel = new ViewModelProvider(PeertubeActivity.this).get(PostActionsVM.class);
- viewModel.post(RetrofitPeertubeAPI.ActionType.RATEVIDEO, peertube.getId(), newState, null).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(PeertubeAPI.StatusAction.RATEVIDEO, apiResponse1));
+ viewModel.post(RATEVIDEO, peertube.getId(), newState).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(RATEVIDEO, apiResponse1));
peertube.setMyRating(newState);
int count = Integer.parseInt(peertube_like_count.getText().toString());
if (newState.compareTo("none") == 0) {
@@ -588,7 +589,7 @@ public class PeertubeActivity extends AppCompatActivity {
if (isLoggedIn(PeertubeActivity.this)) {
String newState = peertube.getMyRating().equals("dislike") ? "none" : "dislike";
PostActionsVM viewModel = new ViewModelProvider(PeertubeActivity.this).get(PostActionsVM.class);
- viewModel.post(RetrofitPeertubeAPI.ActionType.RATEVIDEO, peertube.getId(), newState).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(PeertubeAPI.StatusAction.RATEVIDEO, apiResponse1));
+ viewModel.post(RATEVIDEO, peertube.getId(), newState).observe(PeertubeActivity.this, apiResponse1 -> manageVIewPostActions(RATEVIDEO, apiResponse1));
peertube.setMyRating(newState);
int count = Integer.parseInt(peertube_dislike_count.getText().toString());
if (newState.compareTo("none") == 0) {
@@ -690,10 +691,9 @@ public class PeertubeActivity extends AppCompatActivity {
int i = 1;
if (captions.size() > 0) {
for (Caption caption : captions) {
- Iterator> it = caption.getLanguage().entrySet().iterator();
- Map.Entry pair = it.next();
- itemsLabelLanguage[i] = pair.getValue();
- itemsKeyLanguage[i] = pair.getKey();
+ Item lang = caption.getLanguage();
+ itemsLabelLanguage[i] = String.valueOf(lang.getId());
+ itemsKeyLanguage[i] = lang.getLabel();
i++;
}
}
@@ -944,10 +944,9 @@ public class PeertubeActivity extends AppCompatActivity {
@SuppressWarnings({"unused", "RedundantSuppression"})
public void manageVIewPostActions(RetrofitPeertubeAPI.ActionType statusAction, APIResponse apiResponse) {
-
- if (peertube.isCommentsEnabled() && statusAction == RetrofitPeertubeAPI.ActionType.PEERTUBECOMMENT) {
+ if (peertube.isCommentsEnabled() && statusAction == ADD_COMMENT) {
CommentVM commentViewModel = new ViewModelProvider(PeertubeActivity.this).get(CommentVM.class);
- commentViewModel.getComment(peertubeInstance, videoId).observe(PeertubeActivity.this, this::manageVIewComment);
+ commentViewModel.getThread(videoId).observe(PeertubeActivity.this, this::manageVIewComment);
} else if (statusAction == RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT) {
Toasty.success(PeertubeActivity.this, getString(R.string.successful_report), Toasty.LENGTH_LONG).show();
} else if (statusAction == RetrofitPeertubeAPI.ActionType.REPORT_VIDEO) {
@@ -1037,7 +1036,7 @@ public class PeertubeActivity extends AppCompatActivity {
public void manageVIewPlaylists(PlaylistsVM.action actionType, APIResponse apiResponse) {
if (actionType == GET_PLAYLIST_FOR_VIDEO && apiResponse != null) {
- playlistForVideo = apiResponse.getPlaylistForVideos();
+ playlistForVideo = apiResponse.getPlaylists();
} else if (actionType == GET_PLAYLISTS && apiResponse != null) {
playlists = apiResponse.getPlaylists();
}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/ShowAccountActivity.java b/app/src/main/java/app/fedilab/fedilabtube/ShowChannelActivity.java
similarity index 63%
rename from app/src/main/java/app/fedilab/fedilabtube/ShowAccountActivity.java
rename to app/src/main/java/app/fedilab/fedilabtube/ShowChannelActivity.java
index e076ff2..6da9c41 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/ShowAccountActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/ShowChannelActivity.java
@@ -48,40 +48,46 @@ import com.google.android.material.tabs.TabLayout;
import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import app.fedilab.fedilabtube.client.APIResponse;
-import app.fedilab.fedilabtube.client.PeertubeAPI;
-import app.fedilab.fedilabtube.client.data.AccountData.Account;
-import app.fedilab.fedilabtube.client.entities.Relationship;
+import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
+import app.fedilab.fedilabtube.client.data.ChannelData.Channel;
import app.fedilab.fedilabtube.fragment.DisplayAccountsFragment;
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
import app.fedilab.fedilabtube.helper.Helper;
-import app.fedilab.fedilabtube.viewmodel.AccountsVM;
+import app.fedilab.fedilabtube.viewmodel.ChannelsVM;
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
import app.fedilab.fedilabtube.viewmodel.PostActionsVM;
import app.fedilab.fedilabtube.viewmodel.RelationshipVM;
import es.dmoral.toasty.Toasty;
import static androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.FOLLOW;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.MUTE;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.UNFOLLOW;
+import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.DataType.CHANNEL;
import static app.fedilab.fedilabtube.helper.Helper.getLiveInstance;
import static app.fedilab.fedilabtube.helper.Helper.isLoggedIn;
-public class ShowAccountActivity extends AppCompatActivity {
+public class ShowChannelActivity extends AppCompatActivity {
private Button account_follow;
private ViewPager mPager;
private TabLayout tabLayout;
private TextView account_note, subscriber_count;
- private Relationship relationship;
+ private List