add more info for instances
This commit is contained in:
parent
7e5dfec65c
commit
39a2cdf090
|
@ -20,6 +20,8 @@ class Instance {
|
|||
private long latency = -1;
|
||||
private boolean checked = false;
|
||||
private instanceType type;
|
||||
private boolean cloudflare =false;
|
||||
private String locale;
|
||||
|
||||
String getDomain() {
|
||||
return domain;
|
||||
|
@ -53,6 +55,22 @@ class Instance {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public boolean isCloudflare() {
|
||||
return cloudflare;
|
||||
}
|
||||
|
||||
public void setCloudflare(boolean cloudflare) {
|
||||
this.cloudflare = cloudflare;
|
||||
}
|
||||
|
||||
public String getLocale() {
|
||||
return locale;
|
||||
}
|
||||
|
||||
public void setLocale(String locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
enum instanceType {
|
||||
INVIDIOUS,
|
||||
NITTER,
|
||||
|
|
|
@ -73,7 +73,7 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
protected String doInBackground(Void... voids) {
|
||||
HttpsURLConnection httpsURLConnection;
|
||||
try {
|
||||
String instances_url = "https://fedilab.app/nitterizeme_instances/payload.json";
|
||||
String instances_url = "https://fedilab.app/nitterizeme_instances/payload_2.json";
|
||||
URL url = new URL(instances_url);
|
||||
httpsURLConnection = (HttpsURLConnection) url.openConnection();
|
||||
httpsURLConnection.setConnectTimeout(10 * 1000);
|
||||
|
@ -125,8 +125,13 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
List<Instance> invidiousInstances = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArrayInvidious.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
instance.setDomain(jsonArrayInvidious.getString(i));
|
||||
if (instance.getDomain().compareTo(defaultInvidious) == 0) {
|
||||
String domain = jsonArrayInvidious.getJSONObject(i).getString("domain");
|
||||
boolean cloudFlare = jsonArrayInvidious.getJSONObject(i).getBoolean("cloudflare");
|
||||
String locale = jsonArrayInvidious.getJSONObject(i).getString("locale");
|
||||
instance.setDomain(domain);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
if (domain.compareTo(defaultInvidious) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instance.setType(Instance.instanceType.INVIDIOUS);
|
||||
|
@ -135,8 +140,13 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
List<Instance> nitterInstances = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArrayNitter.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
instance.setDomain(jsonArrayNitter.getString(i));
|
||||
if (instance.getDomain().compareTo(defaultNitter) == 0) {
|
||||
String domain = jsonArrayNitter.getJSONObject(i).getString("domain");
|
||||
boolean cloudFlare = jsonArrayNitter.getJSONObject(i).getBoolean("cloudflare");
|
||||
String locale = jsonArrayNitter.getJSONObject(i).getString("locale");
|
||||
instance.setDomain(domain);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
if (domain.compareTo(defaultNitter) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instance.setType(Instance.instanceType.NITTER);
|
||||
|
@ -145,8 +155,13 @@ public class InstanceActivity extends AppCompatActivity {
|
|||
List<Instance> bibliogramInstances = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArrayBibliogram.length(); i++) {
|
||||
Instance instance = new Instance();
|
||||
instance.setDomain(jsonArrayBibliogram.getString(i));
|
||||
if (instance.getDomain().compareTo(defaultBibliogram) == 0) {
|
||||
String domain = jsonArrayBibliogram.getJSONObject(i).getString("domain");
|
||||
boolean cloudFlare = jsonArrayBibliogram.getJSONObject(i).getBoolean("cloudflare");
|
||||
String locale = jsonArrayBibliogram.getJSONObject(i).getString("locale");
|
||||
instance.setDomain(domain);
|
||||
instance.setCloudflare(cloudFlare);
|
||||
instance.setLocale(locale);
|
||||
if (domain.compareTo(defaultBibliogram) == 0) {
|
||||
instance.setChecked(true);
|
||||
}
|
||||
instance.setType(Instance.instanceType.BIBLIOGRAM);
|
||||
|
|
|
@ -21,6 +21,7 @@ import android.os.Looper;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
|
@ -88,6 +89,12 @@ public class InstanceAdapter extends RecyclerView.Adapter {
|
|||
holder.progress.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
holder.locale.setText(instance.getLocale());
|
||||
if( instance.isCloudflare()){
|
||||
holder.useCloudflare.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
holder.useCloudflare.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
holder.checkbox_instance.setChecked(instance.isChecked());
|
||||
|
||||
|
@ -164,14 +171,17 @@ public class InstanceAdapter extends RecyclerView.Adapter {
|
|||
|
||||
class ViewHolder extends RecyclerView.ViewHolder {
|
||||
RadioButton checkbox_instance;
|
||||
TextView latency;
|
||||
TextView latency, locale;
|
||||
ProgressBar progress;
|
||||
ImageView useCloudflare;
|
||||
|
||||
ViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
checkbox_instance = itemView.findViewById(R.id.checkbox_instance);
|
||||
latency = itemView.findViewById(R.id.latency);
|
||||
progress = itemView.findViewById(R.id.progress);
|
||||
locale = itemView.findViewById(R.id.locale);
|
||||
useCloudflare = itemView.findViewById(R.id.use_cloudflare);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="256dp"
|
||||
android:height="116dp"
|
||||
android:viewportWidth="256"
|
||||
android:viewportHeight="116">
|
||||
<path
|
||||
android:pathData="M202.357,49.394L197.046,47.27C172.085,103.434 72.786,69.289 66.811,85.997C65.815,97.283 121.038,88.143 160.517,90.056C172.556,90.639 178.593,99.727 173.481,114.54L183.55,114.571C195.165,78.362 232.233,96.841 233.782,84.891C231.237,77.034 191.181,84.891 202.357,49.394Z"
|
||||
android:fillColor="#FFFFFF"/>
|
||||
<path
|
||||
android:pathData="M176.332,108.348C177.925,103.037 177.394,97.726 174.739,94.539C172.083,91.352 168.365,89.228 163.585,88.697L71.17,87.634C70.639,87.634 70.108,87.103 69.577,87.103C69.046,86.572 69.046,86.041 69.577,85.51C70.108,84.448 70.639,83.916 71.701,83.916L164.647,82.854C175.801,82.323 187.486,73.294 191.734,62.672L197.046,48.863C197.046,48.331 197.577,47.8 197.046,47.269C191.203,20.182 166.772,-0.001 138.091,-0.001C111.535,-0.001 88.697,16.995 80.73,40.896C75.419,37.178 69.046,35.053 61.61,35.585C48.863,36.647 38.772,47.269 37.178,60.016C36.647,63.203 37.178,66.39 37.71,69.576C16.996,70.107 0,87.103 0,108.348C0,110.472 0,112.066 0.531,114.19C0.531,115.253 1.593,115.784 2.125,115.784L172.614,115.784C173.676,115.784 174.739,115.253 174.739,114.19L176.332,108.348Z"
|
||||
android:fillColor="#F4811F"/>
|
||||
<path
|
||||
android:pathData="M205.544,48.863L202.888,48.863C202.357,48.863 201.826,49.394 201.295,49.925L197.577,62.672C195.984,67.983 196.515,73.295 199.171,76.481C201.826,79.668 205.544,81.792 210.324,82.324L229.976,83.386C230.507,83.386 231.038,83.917 231.569,83.917C232.1,84.448 232.1,84.979 231.569,85.51C231.038,86.573 230.507,87.104 229.444,87.104L209.262,88.166C198.108,88.697 186.424,97.726 182.175,108.348L181.112,113.129C180.581,113.66 181.112,114.722 182.175,114.722L252.283,114.722C253.345,114.722 253.876,114.191 253.876,113.129C254.938,108.88 256,104.1 256,99.319C256,71.701 233.162,48.863 205.544,48.863"
|
||||
android:fillColor="#FAAD3F"/>
|
||||
</vector>
|
|
@ -8,17 +8,30 @@
|
|||
|
||||
<RadioButton
|
||||
android:id="@+id/checkbox_instance"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true" />
|
||||
|
||||
<ImageView
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_marginLeft="3dp"
|
||||
android:id="@+id/use_cloudflare"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_cloudflare"
|
||||
android:layout_height="20dp"
|
||||
android:contentDescription="@string/cloudflare" />
|
||||
<TextView
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_marginLeft="3dp"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/locale"/>
|
||||
<TextView
|
||||
android:id="@+id/latency"
|
||||
android:layout_width="80dp"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress"
|
||||
android:layout_width="20dp"
|
||||
|
|
|
@ -47,4 +47,5 @@
|
|||
<string name="error_message_internet">Check your Internet connection</string>
|
||||
<string name="instance_label">Instance:</string>
|
||||
<string name="expand_instance_details">Expand instance details</string>
|
||||
<string name="cloudflare">This instance uses Cloudflare</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in New Issue