summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java402
1 files changed, 178 insertions, 224 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java
index 685fc70c4..a642ee536 100644
--- a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java
@@ -15,7 +15,6 @@
package app.fedilab.android.activities;
import android.annotation.SuppressLint;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
@@ -33,7 +32,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ImageView;
@@ -138,212 +136,174 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
ImageView add_remote_instance = actionBar.getCustomView().findViewById(R.id.add_remote_instance);
- toolbar_close.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
+ toolbar_close.setOnClickListener(v -> finish());
if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
add_remote_instance.setVisibility(View.VISIBLE);
} else {
add_remote_instance.setVisibility(View.GONE);
}
- add_remote_instance.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ReorderTimelinesActivity.this, style);
- LayoutInflater inflater = getLayoutInflater();
- @SuppressLint("InflateParams") View dialogView = inflater.inflate(R.layout.search_instance, null);
- dialogBuilder.setView(dialogView);
-
- AutoCompleteTextView instance_list = dialogView.findViewById(R.id.search_instance);
- //Manage download of attachments
- RadioGroup radioGroup = dialogView.findViewById(R.id.set_attachment_group);
- radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
- if (checkedId == R.id.twitter_accounts) {
- instance_list.setHint(R.string.list_of_twitter_accounts);
- } else {
- instance_list.setHint(R.string.instance);
- }
- });
- instance_list.setFilters(new InputFilter[]{new InputFilter.LengthFilter(60)});
- dialogBuilder.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
- String instanceName = instance_list.getText().toString().trim().replace("@", "");
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- if (radioGroup.getCheckedRadioButtonId() == R.id.mastodon_instance)
- new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/timelines/public?local=true", 10, null, null);
- else if (radioGroup.getCheckedRadioButtonId() == R.id.peertube_instance)
- new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/videos/", 10, null, null);
- else if (radioGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) {
- new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/timelines/public", 10, null, null);
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.misskey_instance) {
- new HttpsConnection(ReorderTimelinesActivity.this, null).post("https://" + instanceName + "/api/notes/local-timeline", 10, null, null);
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.gnu_instance) {
- new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/statuses/public_timeline.json", 10, null, null);
- }
- runOnUiThread(new Runnable() {
- public void run() {
- dialog.dismiss();
- if (radioGroup.getCheckedRadioButtonId() == R.id.mastodon_instance) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "MASTODON");
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.peertube_instance) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "PEERTUBE");
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "PIXELFED");
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.misskey_instance) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "MISSKEY");
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.gnu_instance) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "GNU");
- } else if (radioGroup.getCheckedRadioButtonId() == R.id.twitter_accounts) {
- new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "NITTER");
- }
- if (timelines != null && adapter != null) {
- List<RemoteInstance> instance = new InstancesDAO(ReorderTimelinesActivity.this, db).getInstanceByName(instanceName);
- if (instance != null && instance.size() > 0) {
- ManageTimelines manageTimelines = new ManageTimelines();
- manageTimelines.setRemoteInstance(instance.get(0));
- manageTimelines.setPosition(timelines.size());
- manageTimelines.setDisplayed(true);
- manageTimelines.setType(ManageTimelines.Type.INSTANCE);
- timelines.add(manageTimelines);
- adapter.notifyItemInserted((timelines.size() - 1));
- }
- updated = true;
- }
- }
- });
- } catch (final Exception e) {
- e.printStackTrace();
- runOnUiThread(new Runnable() {
- public void run() {
- Toasty.warning(ReorderTimelinesActivity.this, getString(R.string.toast_instance_unavailable), Toast.LENGTH_LONG).show();
- }
- });
+ add_remote_instance.setOnClickListener(v -> {
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ReorderTimelinesActivity.this, style);
+ LayoutInflater inflater1 = getLayoutInflater();
+ @SuppressLint("InflateParams") View dialogView = inflater1.inflate(R.layout.search_instance, null);
+ dialogBuilder.setView(dialogView);
+
+ AutoCompleteTextView instance_list = dialogView.findViewById(R.id.search_instance);
+ //Manage download of attachments
+ RadioGroup radioGroup = dialogView.findViewById(R.id.set_attachment_group);
+ radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
+ if (checkedId == R.id.twitter_accounts) {
+ instance_list.setHint(R.string.list_of_twitter_accounts);
+ } else {
+ instance_list.setHint(R.string.instance);
+ }
+ });
+ instance_list.setFilters(new InputFilter[]{new InputFilter.LengthFilter(60)});
+ dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> {
+ SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
+ String instanceName = instance_list.getText().toString().trim().replace("@", "");
+ new Thread(() -> {
+ try {
+ if (radioGroup.getCheckedRadioButtonId() == R.id.mastodon_instance)
+ new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/timelines/public?local=true", 10, null, null);
+ else if (radioGroup.getCheckedRadioButtonId() == R.id.peertube_instance)
+ new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/videos/", 10, null, null);
+ else if (radioGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) {
+ new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/v1/timelines/public", 10, null, null);
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.misskey_instance) {
+ new HttpsConnection(ReorderTimelinesActivity.this, null).post("https://" + instanceName + "/api/notes/local-timeline", 10, null, null);
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.gnu_instance) {
+ new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://" + instanceName + "/api/statuses/public_timeline.json", 10, null, null);
+ }
+ runOnUiThread(() -> {
+ dialog.dismiss();
+ if (radioGroup.getCheckedRadioButtonId() == R.id.mastodon_instance) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "MASTODON");
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.peertube_instance) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "PEERTUBE");
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "PIXELFED");
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.misskey_instance) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "MISSKEY");
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.gnu_instance) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "GNU");
+ } else if (radioGroup.getCheckedRadioButtonId() == R.id.twitter_accounts) {
+ new InstancesDAO(ReorderTimelinesActivity.this, db).insertInstance(instanceName, "NITTER");
+ }
+ if (timelines != null && adapter != null) {
+ List<RemoteInstance> instance = new InstancesDAO(ReorderTimelinesActivity.this, db).getInstanceByName(instanceName);
+ if (instance != null && instance.size() > 0) {
+ ManageTimelines manageTimelines = new ManageTimelines();
+ manageTimelines.setRemoteInstance(instance.get(0));
+ manageTimelines.setPosition(timelines.size());
+ manageTimelines.setDisplayed(true);
+ manageTimelines.setType(ManageTimelines.Type.INSTANCE);
+ timelines.add(manageTimelines);
+ adapter.notifyItemInserted((timelines.size() - 1));
}
+ updated = true;
}
- }).start();
+ });
+ } catch (final Exception e) {
+ e.printStackTrace();
+ runOnUiThread(() -> Toasty.warning(ReorderTimelinesActivity.this, getString(R.string.toast_instance_unavailable), Toast.LENGTH_LONG).show());
}
- });
- AlertDialog alertDialog = dialogBuilder.create();
- alertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialogInterface) {
- //Hide keyboard
- InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
- assert imm != null;
- imm.hideSoftInputFromWindow(instance_list.getWindowToken(), 0);
- }
- });
- if (alertDialog.getWindow() != null)
- alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
- alertDialog.show();
-
- instance_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- String oldSearch = parent.getItemAtPosition(position).toString().trim();
- }
- });
- instance_list.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
-
- }
-
- @Override
- public void afterTextChanged(Editable s) {
- if (radioGroup.getCheckedRadioButtonId() != R.id.twitter_accounts) {
- Pattern host = Pattern.compile("([\\da-z\\.-]+\\.[a-z\\.]{2,12})");
- Matcher matcher = host.matcher(s.toString().trim());
- if (s.toString().trim().length() == 0 || !matcher.find()) {
- alertDialog.getButton(
- AlertDialog.BUTTON_POSITIVE).setEnabled(false);
- } else {
- // Something into edit text. Enable the button.
- alertDialog.getButton(
- AlertDialog.BUTTON_POSITIVE).setEnabled(true);
- }
- if (s.length() > 2 && !isLoadingInstance) {
- final String action = "/instances/search";
- final HashMap<String, String> parameters = new HashMap<>();
- parameters.put("q", s.toString().trim());
- parameters.put("count", String.valueOf(1000));
- parameters.put("name", String.valueOf(true));
- isLoadingInstance = true;
-
- if (oldSearch == null || !oldSearch.equals(s.toString().trim()))
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- final String response = new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://instances.social/api/1.0" + action, 30, parameters, Helper.THEKINRAR_SECRET_TOKEN);
- runOnUiThread(new Runnable() {
- public void run() {
- isLoadingInstance = false;
- String[] instances;
- try {
- JSONObject jsonObject = new JSONObject(response);
- JSONArray jsonArray = jsonObject.getJSONArray("instances");
- if (jsonArray != null) {
- int length = 0;
- for (int i = 0; i < jsonArray.length(); i++) {
- if (!jsonArray.getJSONObject(i).get("name").toString().contains("@") && jsonArray.getJSONObject(i).get("up").toString().equals("true"))
- length++;
- }
- instances = new String[length];
- int j = 0;
- for (int i = 0; i < jsonArray.length(); i++) {
- if (!jsonArray.getJSONObject(i).get("name").toString().contains("@") && jsonArray.getJSONObject(i).get("up").toString().equals("true")) {
- instances[j] = jsonArray.getJSONObject(i).get("name").toString();
- j++;
- }
- }
- } else {
- instances = new String[]{};
- }
- instance_list.setAdapter(null);
- ArrayAdapter<String> adapter =
- new ArrayAdapter<>(ReorderTimelinesActivity.this, android.R.layout.simple_list_item_1, instances);
- instance_list.setAdapter(adapter);
- if (instance_list.hasFocus() && !ReorderTimelinesActivity.this.isFinishing())
- instance_list.showDropDown();
- oldSearch = s.toString().trim();
-
- } catch (JSONException ignored) {
- isLoadingInstance = false;
- }
- }
- });
-
- } catch (HttpsConnection.HttpsConnectionException e) {
- isLoadingInstance = false;
- } catch (Exception e) {
- isLoadingInstance = false;
- }
- }
- }).start();
- else
- isLoadingInstance = false;
- }
+ }).start();
+ });
+ AlertDialog alertDialog = dialogBuilder.create();
+ alertDialog.setOnDismissListener(dialogInterface -> {
+ //Hide keyboard
+ InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+ assert imm != null;
+ imm.hideSoftInputFromWindow(instance_list.getWindowToken(), 0);
+ });
+ if (alertDialog.getWindow() != null)
+ alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+ alertDialog.show();
+
+ instance_list.setOnItemClickListener((parent, view1, position, id) -> {
+ });
+ instance_list.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (radioGroup.getCheckedRadioButtonId() != R.id.twitter_accounts) {
+ Pattern host = Pattern.compile("([\\da-z.-]+\\.[a-z.]{2,12})");
+ Matcher matcher = host.matcher(s.toString().trim());
+ if (s.toString().trim().length() == 0 || !matcher.find()) {
+ alertDialog.getButton(
+ AlertDialog.BUTTON_POSITIVE).setEnabled(false);
} else {
+ // Something into edit text. Enable the button.
alertDialog.getButton(
AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
+ if (s.length() > 2 && !isLoadingInstance) {
+ final String action = "/instances/search";
+ final HashMap<String, String> parameters = new HashMap<>();
+ parameters.put("q", s.toString().trim());
+ parameters.put("count", String.valueOf(1000));
+ parameters.put("name", String.valueOf(true));
+ isLoadingInstance = true;
+
+ if (oldSearch == null || !oldSearch.equals(s.toString().trim()))
+ new Thread(() -> {
+ try {
+ final String response = new HttpsConnection(ReorderTimelinesActivity.this, null).get("https://instances.social/api/1.0" + action, 30, parameters, Helper.THEKINRAR_SECRET_TOKEN);
+ runOnUiThread(() -> {
+ isLoadingInstance = false;
+ String[] instances;
+ try {
+ JSONObject jsonObject = new JSONObject(response);
+ JSONArray jsonArray = jsonObject.getJSONArray("instances");
+ int length = 0;
+ for (int i = 0; i < jsonArray.length(); i++) {
+ if (!jsonArray.getJSONObject(i).get("name").toString().contains("@") && jsonArray.getJSONObject(i).get("up").toString().equals("true"))
+ length++;
+ }
+ instances = new String[length];
+ int j = 0;
+ for (int i = 0; i < jsonArray.length(); i++) {
+ if (!jsonArray.getJSONObject(i).get("name").toString().contains("@") && jsonArray.getJSONObject(i).get("up").toString().equals("true")) {
+ instances[j] = jsonArray.getJSONObject(i).get("name").toString();
+ j++;
+ }
+ }
+ instance_list.setAdapter(null);
+ ArrayAdapter<String> adapter =
+ new ArrayAdapter<>(ReorderTimelinesActivity.this, android.R.layout.simple_list_item_1, instances);
+ instance_list.setAdapter(adapter);
+ if (instance_list.hasFocus() && !ReorderTimelinesActivity.this.isFinishing())
+ instance_list.showDropDown();
+ oldSearch = s.toString().trim();
+
+ } catch (JSONException ignored) {
+ isLoadingInstance = false;
+ }
+ });
+ } catch (Exception e) {
+ isLoadingInstance = false;
+ }
+ }).start();
+ else
+ isLoadingInstance = false;
+ }
+ } else {
+ alertDialog.getButton(
+ AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
- });
- }
+
+ }
+ });
});
toolbar_title.setText(R.string.action_reorder_timeline);
}
@@ -390,40 +350,34 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra
break;
}
undo_action.setPaintFlags(undo_action.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- undo_container.setVisibility(View.GONE);
- SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
- switch (manageTimelines.getType()) {
- case TAG:
- new SearchDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines.getTagTimeline().getName());
- new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines);
- break;
- case INSTANCE:
- new InstancesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines.getRemoteInstance().getHost());
- new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines);
- break;
- case LIST:
- timeline = manageTimelines;
- new ManageListsAsyncTask(ReorderTimelinesActivity.this, ManageListsAsyncTask.action.DELETE_LIST, null, null, manageTimelines.getListTimeline().getId(), null, ReorderTimelinesActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(timeline);
- refresh_list = true;
- break;
- }
- updated = true;
+ Runnable runnable = () -> {
+ undo_container.setVisibility(View.GONE);
+ SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
+ switch (manageTimelines.getType()) {
+ case TAG:
+ new SearchDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines.getTagTimeline().getName());
+ new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines);
+ break;
+ case INSTANCE:
+ new InstancesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines.getRemoteInstance().getHost());
+ new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines);
+ break;
+ case LIST:
+ timeline = manageTimelines;
+ new ManageListsAsyncTask(ReorderTimelinesActivity.this, ManageListsAsyncTask.action.DELETE_LIST, null, null, manageTimelines.getListTimeline().getId(), null, ReorderTimelinesActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ new TimelinesDAO(ReorderTimelinesActivity.this, db).remove(timeline);
+ refresh_list = true;
+ break;
}
+ updated = true;
};
Handler handler = new Handler();
handler.postDelayed(runnable, 4000);
- undo_action.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- timelines.add(position, manageTimelines);
- adapter.notifyItemInserted(position);
- undo_container.setVisibility(View.GONE);
- handler.removeCallbacks(runnable);
- }
+ undo_action.setOnClickListener(v -> {
+ timelines.add(position, manageTimelines);
+ adapter.notifyItemInserted(position);
+ undo_container.setVisibility(View.GONE);
+ handler.removeCallbacks(runnable);
});
}