summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2019-10-22 18:10:20 +0200
committertom79 <tschneider.ac@gmail.com>2019-10-22 18:10:20 +0200
commit775e4fe800cec7c3d8a7680d0afa2973907ea46e (patch)
tree22959918a4f6f4d4aa80f8743980c51024a4b114
parent5131ecab2dc0648d45deac5e4d7c11ab4db4e881 (diff)
Fix Peertube discover
-rw-r--r--app/src/main/java/app/fedilab/android/activities/TootActivity.java94
-rw-r--r--app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java3
-rw-r--r--app/src/main/java/app/fedilab/android/client/PeertubeAPI.java83
3 files changed, 88 insertions, 92 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java
index df10e6353..3df8dd2b5 100644
--- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java
@@ -2227,58 +2227,66 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
createAndSendToot(tootContent, content_type, timestamp);
} else {
splitToot = Helper.splitToots(toot_content.getText().toString().trim(), split_toot_size, true);
- tootContent = splitToot.get(0);
- stepSpliToot = 1;
+ if( splitToot.size() > 0 ) {
+ tootContent = splitToot.get(0);
+ stepSpliToot = 1;
+ AlertDialog.Builder builderInner = new AlertDialog.Builder(TootActivity.this, style);
+ builderInner.setTitle(R.string.message_preview);
- AlertDialog.Builder builderInner = new AlertDialog.Builder(TootActivity.this, style);
- builderInner.setTitle(R.string.message_preview);
+ View preview = getLayoutInflater().inflate(R.layout.popup_message_preview, new LinearLayout(getApplicationContext()), false);
+ builderInner.setView(preview);
- View preview = getLayoutInflater().inflate(R.layout.popup_message_preview, new LinearLayout(getApplicationContext()), false);
- builderInner.setView(preview);
-
- //Text for report
- final TextView textView = preview.findViewById(R.id.preview);
- textView.setText("");
- final SwitchCompat report_mention = preview.findViewById(R.id.report_mention);
- int finalSplit_toot_size = split_toot_size;
- report_mention.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- splitToot = Helper.splitToots(toot_content.getText().toString().trim(), finalSplit_toot_size, isChecked);
- textView.setText("");
- int inc = 0;
- for(String prev: splitToot){
- if( inc < splitToot.size()-1) {
- textView.setText(textView.getText() + prev + "\n----------\n");
+ //Text for report
+ final TextView textView = preview.findViewById(R.id.preview);
+ textView.setText("");
+ final SwitchCompat report_mention = preview.findViewById(R.id.report_mention);
+ int finalSplit_toot_size = split_toot_size;
+ report_mention.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ splitToot = Helper.splitToots(toot_content.getText().toString().trim(), finalSplit_toot_size, isChecked);
+ textView.setText("");
+ int inc = 0;
+ for (String prev : splitToot) {
+ if (inc < splitToot.size() - 1) {
+ textView.setText(textView.getText() + prev + "\n----------\n");
+ }
}
}
+ });
+ int inc = 0;
+ for (String prev : splitToot) {
+ if (inc < splitToot.size() - 1) {
+ textView.setText(textView.getText() + prev + "\n----------\n");
+ }
}
- });
- int inc = 0;
- for(String prev: splitToot){
- if( inc < splitToot.size()-1) {
- textView.setText(textView.getText() + prev + "\n----------\n");
- }
- }
- builderInner.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- toot_it.setEnabled(true);
- dialog.dismiss();
- }
- });
- builderInner.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- createAndSendToot(tootContent, content_type, timestamp);
- dialog.dismiss();
+ builderInner.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ toot_it.setEnabled(true);
+ dialog.dismiss();
+ }
+ });
+ builderInner.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ createAndSendToot(tootContent, content_type, timestamp);
+ dialog.dismiss();
+ }
+ });
+ AlertDialog alertDialog = builderInner.create();
+ alertDialog.show();
+ }else{ //Failed to split the toot.
+ if (!displayWYSIWYG()) {
+ tootContent = toot_content.getText().toString().trim();
+ } else {
+ tootContent = wysiwyg.getContentAsHTML();
}
- });
- AlertDialog alertDialog = builderInner.create();
- alertDialog.show();
+ createAndSendToot(tootContent, content_type, timestamp);
+ }
}
diff --git a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java
index 9c7e245b1..0d66ea125 100644
--- a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java
+++ b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java
@@ -69,6 +69,9 @@ public class UpdateAccountInfoAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
Account account;
+ if( this.contextReference == null){
+ return null;
+ }
if (social == SOCIAL.MASTODON || social == SOCIAL.PIXELFED) {
account = new API(this.contextReference.get(), instance, null).verifyCredentials();
InstanceNodeInfo info = new API(this.contextReference.get(), instance, null).getRealNodeInfo(this.instance);
diff --git a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java
index 8ddd756f8..c228565bc 100644
--- a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java
+++ b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java
@@ -17,6 +17,7 @@ package app.fedilab.android.client;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
+import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
@@ -901,65 +902,49 @@ public class PeertubeAPI {
try {
HttpsConnection httpsConnection = new HttpsConnection(context, this.instance);
String response = httpsConnection.get(getAbsoluteUrl(action), 60, params, prefKeyOauthTokenT);
+ // Helper.largeLog(response);
if (!action.equals("/overviews/videos")) {
JSONArray values = new JSONObject(response).getJSONArray("data");
peertubes = parsePeertube(values);
} else {
- JSONArray videoA = new JSONObject(response).getJSONArray("categories");
- JSONArray values = videoA.getJSONObject(0).getJSONArray("videos");
- List<Peertube> peertubes1 = parsePeertube(values);
- if (peertubes1 != null && peertubes1.size() > 0) {
- peertubes1.get(0).setHeaderType("categories");
- peertubes1.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getJSONObject("category").getString("label"));
- peertubes.addAll(peertubes1);
- }
- values = videoA.getJSONObject(1).getJSONArray("videos");
- List<Peertube> peertubes2 = parsePeertube(values);
- if (peertubes2 != null && peertubes2.size() > 0) {
- peertubes2.get(0).setHeaderType("categories");
- peertubes2.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getJSONObject("category").getString("label"));
- peertubes.addAll(peertubes2);
+ JSONArray categories = new JSONObject(response).getJSONArray("categories");
+ JSONArray channels = new JSONObject(response).getJSONArray("channels");
+ JSONArray tags = new JSONObject(response).getJSONArray( "tags");
+
+ for (int i = 0; i < categories.length(); i++) {
+ JSONArray categoriesVideos = categories.getJSONObject(i).getJSONArray("videos");
+ List<Peertube> peertubeCategories = parsePeertube(categoriesVideos);
+ if (peertubeCategories != null && peertubeCategories.size() > 0) {
+ peertubeCategories.get(0).setHeaderType("categories");
+ peertubeCategories.get(0).setHeaderTypeValue(categories.getJSONObject(i).getJSONObject("category").getString("label"));
+ peertubes.addAll(peertubeCategories);
+ }
}
- videoA = new JSONObject(response).getJSONArray("tags");
- values = videoA.getJSONObject(0).getJSONArray("videos");
- List<Peertube> peertubes5 = parsePeertube(values);
- if (peertubes5 != null && peertubes5.size() > 0) {
- peertubes5.get(0).setHeaderType("tags");
- peertubes5.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getString("tag"));
- peertubes.addAll(peertubes5);
- }
- values = videoA.getJSONObject(1).getJSONArray("videos");
- List<Peertube> peertubes6 = parsePeertube(values);
- if (peertubes6 != null && peertubes6.size() > 0) {
- peertubes6.get(0).setHeaderType("tags");
- peertubes6.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getString("tag"));
- peertubes.addAll(peertubes6);
- }
- videoA = new JSONObject(response).getJSONArray("channels");
- values = videoA.getJSONObject(0).getJSONArray("videos");
- List<Peertube> peertubes3 = parsePeertube(values);
- if (peertubes3 != null && peertubes3.size() > 0) {
- peertubes3.get(0).setHeaderType("channels");
- peertubes3.get(0).setHeaderTypeValue(videoA.getJSONObject(0).getJSONObject("channel").getString("displayName"));
- peertubes.addAll(peertubes3);
+ for (int i = 0; i < channels.length(); i++) {
+ JSONArray channelsVideos = channels.getJSONObject(i).getJSONArray("videos");
+ List<Peertube> peertubeChannels = parsePeertube(channelsVideos);
+ if (peertubeChannels != null && peertubeChannels.size() > 0) {
+ peertubeChannels.get(0).setHeaderType("channels");
+ peertubeChannels.get(0).setHeaderTypeValue(channels.getJSONObject(i).getJSONObject("channel").getString("displayName"));
+ peertubes.addAll(peertubeChannels);
+ }
}
- values = videoA.getJSONObject(1).getJSONArray("videos");
- List<Peertube> peertubes4 = parsePeertube(values);
- if (peertubes4 != null && peertubes4.size() > 0) {
- peertubes4.get(0).setHeaderType("channels");
- peertubes4.get(0).setHeaderTypeValue(videoA.getJSONObject(1).getJSONObject("channel").getString("displayName"));
- peertubes.addAll(peertubes4);
+
+ for (int i = 0; i < tags.length(); i++) {
+ JSONArray tagsVideos = tags.getJSONObject(i).getJSONArray("videos");
+ List<Peertube> peertubeTags = parsePeertube(tagsVideos);
+ if (peertubeTags != null && peertubeTags.size() > 0) {
+ peertubeTags.get(0).setHeaderType("tags");
+ peertubeTags.get(0).setHeaderTypeValue(tags.getJSONObject(i).getString("tag"));
+ peertubes.addAll(peertubeTags);
+ }
}
+
+
}
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (JSONException e) {
+ } catch (NoSuchAlgorithmException | IOException | KeyManagementException | JSONException e) {
e.printStackTrace();
}
apiResponse.setPeertubes(peertubes);