Support teddit

This commit is contained in:
Thomas 2020-12-01 10:29:24 +01:00
parent 0a61f26d1e
commit 0b2fea479f
8 changed files with 271 additions and 355 deletions

View File

@ -15,6 +15,10 @@ android {
checkReleaseBuilds false
abortOnError false
}
buildFeatures {
viewBinding = true
}
productFlavors {
fullLinks {
applicationId "app.fedilab.nitterizeme"

View File

@ -23,29 +23,30 @@ import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import app.fedilab.nitterizeme.BuildConfig;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.databinding.ActivityAboutBinding;
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
ActivityAboutBinding binding = ActivityAboutBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
TextView about_version = findViewById(R.id.about_version);
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;
about_version.setText(getResources().getString(R.string.about_vesrion, version));
binding.aboutVersion.setText(getResources().getString(R.string.about_vesrion, version));
} catch (PackageManager.NameNotFoundException ignored) {
}
@ -55,77 +56,70 @@ public class AboutActivity extends AppCompatActivity {
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
//Developer click for Mastodon account
TextView developer_mastodon = findViewById(R.id.developer_mastodon);
SpannableString content = new SpannableString(developer_mastodon.getText().toString());
SpannableString content = new SpannableString(binding.developerMastodon.getText().toString());
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, R.color.colorAccent)), 0, content.length(), 0);
developer_mastodon.setText(content);
developer_mastodon.setOnClickListener(v -> {
binding.developerMastodon.setText(content);
binding.developerMastodon.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://toot.fedilab.app/@UntrackMe"));
startActivity(browserIntent);
});
//App Name:
TextView app_name = findViewById(R.id.app_name);
if (BuildConfig.fullLinks) {
app_name.setText(R.string.app_name);
binding.appName.setText(R.string.app_name);
} else {
app_name.setText(R.string.app_name_lite);
binding.appName.setText(R.string.app_name_lite);
}
//Developer Github
TextView github = findViewById(R.id.github);
content = new SpannableString(github.getText().toString());
content = new SpannableString(binding.github.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
github.setText(content);
github.setOnClickListener(v -> {
binding.github.setText(content);
binding.github.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/stom79"));
startActivity(browserIntent);
});
//Developer Framagit
TextView framagit = findViewById(R.id.framagit);
content = new SpannableString(framagit.getText().toString());
content = new SpannableString(binding.framagit.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
framagit.setText(content);
framagit.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://framagit.org/tom79"));
binding.framagit.setText(content);
binding.framagit.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://frafinmagit.org/tom79"));
startActivity(browserIntent);
});
//Developer Codeberg
TextView codeberg = findViewById(R.id.codeberg);
content = new SpannableString(codeberg.getText().toString());
content = new SpannableString(binding.codeberg.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
codeberg.setText(content);
codeberg.setOnClickListener(v -> {
binding.codeberg.setText(content);
binding.codeberg.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://codeberg.org/tom79"));
startActivity(browserIntent);
});
//Developer donation
Button donatePaypal = findViewById(R.id.donate_paypal);
donatePaypal.setOnClickListener(v -> {
binding.donatePaypal.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.me/Mastalab"));
startActivity(browserIntent);
});
Button donateLiberapay = findViewById(R.id.donate_liberapay);
donateLiberapay.setOnClickListener(v -> {
binding.donateLiberapay.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://liberapay.com/tom79"));
startActivity(browserIntent);
});
Button how_to = findViewById(R.id.how_to);
how_to.setOnClickListener(v -> {
binding.howTo.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://fedilab.app/wiki/untrackme/"));
startActivity(browserIntent);
});
TextView license = findViewById(R.id.license);
content = new SpannableString(license.getText().toString());
content = new SpannableString(binding.license.getText().toString());
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, R.color.colorAccent)), 0, content.length(), 0);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
license.setText(content);
license.setOnClickListener(v -> {
binding.license.setText(content);
binding.license.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.gnu.org/licenses/quick-guide-gplv3.fr.html"));
startActivity(browserIntent);
});

View File

@ -26,19 +26,14 @@ import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.constraintlayout.widget.ConstraintLayout;
import java.util.ArrayList;
import java.util.List;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.adapters.AppPickerAdapter;
import app.fedilab.nitterizeme.databinding.ActivityPickupAppBinding;
import app.fedilab.nitterizeme.entities.AppPicker;
import app.fedilab.nitterizeme.helpers.Utils;
import app.fedilab.nitterizeme.sqlite.DefaultAppDAO;
@ -62,7 +57,9 @@ public class AppsPickerActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pickup_app);
ActivityPickupAppBinding binding = ActivityPickupAppBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
if (getIntent() == null) {
finish();
}
@ -102,8 +99,8 @@ public class AppsPickerActivity extends Activity {
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
View blank = findViewById(R.id.blank);
blank.setOnClickListener(v -> finish());
binding.blank.setOnClickListener(v -> finish());
String thisPackageName = getApplicationContext().getPackageName();
ArrayList<String> packages = new ArrayList<>();
List<AppPicker> appPickers = new ArrayList<>();
@ -132,8 +129,8 @@ public class AppsPickerActivity extends Activity {
}
}
String defaultApp = new DefaultAppDAO(AppsPickerActivity.this, db).getDefault(packages);
TextView urlText = findViewById(R.id.url);
urlText.setText(url);
binding.url.setText(url);
if (defaultApp != null) {
Intent intent = new Intent(action, Uri.parse(url));
@ -142,13 +139,11 @@ public class AppsPickerActivity extends Activity {
finish();
return;
} else {
ConstraintLayout app_container = findViewById(R.id.app_container);
app_container.setVisibility(View.VISIBLE);
GridView gridView = findViewById(R.id.app_list);
binding.appContainer.setVisibility(View.VISIBLE);
AppPickerAdapter appPickerAdapter = new AppPickerAdapter(appPickers);
gridView.setAdapter(appPickerAdapter);
gridView.setNumColumns(3);
gridView.setOnItemClickListener((parent, view1, position, id) -> {
binding.appList.setAdapter(appPickerAdapter);
binding.appList.setNumColumns(3);
binding.appList.setOnItemClickListener((parent, view1, position, id) -> {
if (!appPickers.get(position).isSelected()) {
for (AppPicker ap : appPickers) {
ap.setSelected(false);
@ -178,10 +173,7 @@ public class AppsPickerActivity extends Activity {
});
Button always = findViewById(R.id.always);
Button once = findViewById(R.id.once);
always.setOnClickListener(v -> {
binding.always.setOnClickListener(v -> {
boolean isPresent = new DefaultAppDAO(AppsPickerActivity.this, db).isPresent(appToUse);
long val = -1;
@ -210,7 +202,7 @@ public class AppsPickerActivity extends Activity {
finish();
});
once.setOnClickListener(v -> {
binding.once.setOnClickListener(v -> {
if (action.compareTo(Intent.ACTION_VIEW) == 0) {
Intent intent = new Intent(action, Uri.parse(url));
intent.setPackage(appToUse);
@ -229,8 +221,7 @@ public class AppsPickerActivity extends Activity {
});
}
ImageView copyLink = findViewById(R.id.copy_link);
copyLink.setOnClickListener(v -> {
binding.copyLink.setOnClickListener(v -> {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("", url);
assert clipboard != null;

View File

@ -23,10 +23,10 @@ import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.Arrays;
@ -35,6 +35,7 @@ import java.util.Objects;
import app.fedilab.nitterizeme.BuildConfig;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.adapters.AppInfoAdapter;
import app.fedilab.nitterizeme.databinding.ActivityCheckAppBinding;
import app.fedilab.nitterizeme.entities.AppInfo;
@ -114,13 +115,16 @@ public class CheckAppActivity extends AppCompatActivity {
public static String outlook_safe_domain = "safelinks.protection.outlook.com";
private RecyclerView list_apps;
private String[] domains;
private ActivityCheckAppBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_check_app);
binding = ActivityCheckAppBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
setTitle(R.string.check_apps);
@ -168,26 +172,23 @@ public class CheckAppActivity extends AppCompatActivity {
i++;
}
}
list_apps = findViewById(R.id.list_apps);
final LinearLayoutManager mLayoutManager;
mLayoutManager = new LinearLayoutManager(CheckAppActivity.this);
list_apps.setLayoutManager(mLayoutManager);
list_apps.setNestedScrollingEnabled(false);
binding.listApps.setLayoutManager(mLayoutManager);
binding.listApps.setNestedScrollingEnabled(false);
}
@Override
protected void onResume() {
super.onResume();
if (list_apps != null) {
int position = ((LinearLayoutManager) Objects.requireNonNull(list_apps.getLayoutManager()))
.findFirstVisibleItemPosition();
ArrayList<AppInfo> appInfos = getAppInfo();
AppInfoAdapter appInfoAdapter = new AppInfoAdapter(appInfos);
list_apps.setAdapter(appInfoAdapter);
list_apps.scrollToPosition(position);
}
int position = ((LinearLayoutManager) Objects.requireNonNull(binding.listApps.getLayoutManager()))
.findFirstVisibleItemPosition();
ArrayList<AppInfo> appInfos = getAppInfo();
AppInfoAdapter appInfoAdapter = new AppInfoAdapter(appInfos);
binding.listApps.setAdapter(appInfoAdapter);
binding.listApps.scrollToPosition(position);
}
@Override

View File

@ -20,16 +20,15 @@ import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.adapters.DefaultAppAdapter;
import app.fedilab.nitterizeme.databinding.ActivityDefaultAppBinding;
import app.fedilab.nitterizeme.entities.DefaultApp;
import app.fedilab.nitterizeme.helpers.Utils;
import app.fedilab.nitterizeme.sqlite.DefaultAppDAO;
@ -42,7 +41,9 @@ public class DefaultAppActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_default_app);
ActivityDefaultAppBinding binding = ActivityDefaultAppBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
setTitle(R.string.default_apps);
@ -51,18 +52,16 @@ public class DefaultAppActivity extends AppCompatActivity {
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
RecyclerView list_apps = findViewById(R.id.list_apps);
final LinearLayoutManager mLayoutManager;
mLayoutManager = new LinearLayoutManager(DefaultAppActivity.this);
list_apps.setLayoutManager(mLayoutManager);
list_apps.setNestedScrollingEnabled(false);
binding.listApps.setLayoutManager(mLayoutManager);
binding.listApps.setNestedScrollingEnabled(false);
ArrayList<DefaultApp> appInfos = getAppInfo();
DefaultAppAdapter defaultAppAdapter = new DefaultAppAdapter(appInfos);
list_apps.setAdapter(defaultAppAdapter);
binding.listApps.setAdapter(defaultAppAdapter);
if (appInfos.size() == 0) {
TextView no_apps = findViewById(R.id.no_apps);
no_apps.setVisibility(View.VISIBLE);
binding.noApps.setVisibility(View.VISIBLE);
}
}
@ -73,7 +72,9 @@ public class DefaultAppActivity extends AppCompatActivity {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -19,17 +19,13 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.snackbar.Snackbar;
@ -37,6 +33,7 @@ import java.util.ArrayList;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.adapters.InstanceAdapter;
import app.fedilab.nitterizeme.databinding.ActivityPopupInstanceBinding;
import app.fedilab.nitterizeme.entities.Instance;
import app.fedilab.nitterizeme.viewmodels.SearchInstanceVM;
@ -44,23 +41,18 @@ import app.fedilab.nitterizeme.viewmodels.SearchInstanceVM;
public class InstanceActivity extends AppCompatActivity {
private static final String list_for_instances = "https://framagit.org/tom79/fedilab_app/-/blob/master/content/untrackme_instances/payload_2.json";
private ActivityPopupInstanceBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popup_instance);
binding = ActivityPopupInstanceBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
setTitle(R.string.select_instances);
SearchInstanceVM viewModel = new ViewModelProvider(this).get(SearchInstanceVM.class);
viewModel.getInstances().observe(this, result -> {
LinearLayout instance_container = findViewById(R.id.instance_container);
RelativeLayout loader = findViewById(R.id.loader);
RecyclerView invidious_instances = findViewById(R.id.invidious_instances);
RecyclerView nitter_instances = findViewById(R.id.nitter_instances);
RecyclerView bibliogram_instances = findViewById(R.id.bibliogram_instances);
Button latency_test = findViewById(R.id.latency_test);
ImageButton instance_info = findViewById(R.id.instance_info);
Button close = findViewById(R.id.close);
if (result == null) {
View parentLayout = findViewById(android.R.id.content);
Snackbar.make(parentLayout, R.string.error_message_internet, Snackbar.LENGTH_LONG).setAction(R.string.close, v -> finish()).show();
@ -78,7 +70,6 @@ public class InstanceActivity extends AppCompatActivity {
boolean customInvidiousInstance = true;
boolean customNitterInstance = true;
boolean customBibliogramInstance = true;
for (Instance instance : result) {
if (instance.getType() == Instance.instanceType.INVIDIOUS) {
invidiousInstances.add(instance);
@ -122,30 +113,30 @@ public class InstanceActivity extends AppCompatActivity {
final LinearLayoutManager iLayoutManager = new LinearLayoutManager(this);
InstanceAdapter invidiousAdapter = new InstanceAdapter(invidiousInstances);
invidious_instances.setAdapter(invidiousAdapter);
invidious_instances.setLayoutManager(iLayoutManager);
invidious_instances.setNestedScrollingEnabled(false);
binding.invidiousInstances.setAdapter(invidiousAdapter);
binding.invidiousInstances.setLayoutManager(iLayoutManager);
binding.invidiousInstances.setNestedScrollingEnabled(false);
final LinearLayoutManager nLayoutManager = new LinearLayoutManager(this);
InstanceAdapter nitterAdapter = new InstanceAdapter(nitterInstances);
nitter_instances.setAdapter(nitterAdapter);
nitter_instances.setLayoutManager(nLayoutManager);
nitter_instances.setNestedScrollingEnabled(false);
binding.nitterInstances.setAdapter(nitterAdapter);
binding.nitterInstances.setLayoutManager(nLayoutManager);
binding.nitterInstances.setNestedScrollingEnabled(false);
final LinearLayoutManager bLayoutManager = new LinearLayoutManager(this);
InstanceAdapter bibliogramAdapter = new InstanceAdapter(bibliogramInstances);
bibliogram_instances.setAdapter(bibliogramAdapter);
bibliogram_instances.setLayoutManager(bLayoutManager);
bibliogram_instances.setNestedScrollingEnabled(false);
latency_test.setOnClickListener(
v -> {
binding.bibliogramInstances.setAdapter(bibliogramAdapter);
binding.bibliogramInstances.setLayoutManager(bLayoutManager);
binding.bibliogramInstances.setNestedScrollingEnabled(false);
binding.latencyTest.setOnClickListener(v -> {
invidiousAdapter.evalLatency();
nitterAdapter.evalLatency();
bibliogramAdapter.evalLatency();
}
);
instance_info.setOnClickListener(v -> {
binding.instanceInfo.setOnClickListener(v -> {
AlertDialog.Builder instanceInfo = new AlertDialog.Builder(this);
instanceInfo.setTitle(R.string.about_instances_title);
View view = getLayoutInflater().inflate(R.layout.popup_instance_info, new LinearLayout(getApplicationContext()), false);
@ -157,11 +148,11 @@ public class InstanceActivity extends AppCompatActivity {
alertDialog.show();
});
close.setOnClickListener(v -> finish());
binding.close.setOnClickListener(v -> finish());
instance_container.setVisibility(View.VISIBLE);
loader.setVisibility(View.GONE);
binding.instanceContainer.setVisibility(View.VISIBLE);
binding.loader.setVisibility(View.GONE);
});
}

View File

@ -27,25 +27,20 @@ import android.provider.Settings;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SwitchCompat;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.textfield.TextInputEditText;
import java.util.List;
import java.util.Objects;
import app.fedilab.nitterizeme.BuildConfig;
import app.fedilab.nitterizeme.R;
import app.fedilab.nitterizeme.databinding.ActivityMainBinding;
import app.fedilab.nitterizeme.databinding.ContentMainBinding;
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
@ -87,59 +82,21 @@ public class MainActivity extends AppCompatActivity {
private String bibliogramHost;
private String tedditHost;
private String osmHost;
private ContentMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
app.fedilab.nitterizeme.databinding.ActivityMainBinding bindingTop = ActivityMainBinding.inflate(getLayoutInflater());
binding = ContentMainBinding.inflate(getLayoutInflater());
View viewRoot = binding.getRoot();
setContentView(viewRoot);
setSupportActionBar(bindingTop.toolbar);
Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
TextView current_instance_nitter = findViewById(R.id.current_instance_nitter);
TextView current_instance_invidious = findViewById(R.id.current_instance_invidious);
TextView current_instance_bibliogram = findViewById(R.id.current_instance_bibliogram);
TextView current_instance_teddit = findViewById(R.id.current_instance_teddit);
TextView current_instance_osm = findViewById(R.id.current_instance_osm);
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
TextInputEditText teddit_instance = findViewById(R.id.teddit_instance);
TextInputEditText osm_instance = findViewById(R.id.osm_instance);
Group invidious_current_group = findViewById(R.id.group_current_invidious);
Group nitter_current_group = findViewById(R.id.group_current_nitter);
Group bibliogram_current_group = findViewById(R.id.group_current_bibliogram);
Group teddit_current_group = findViewById(R.id.group_current_teddit);
Group osm_current_group = findViewById(R.id.group_current_osm);
Group invidious_custom_group = findViewById(R.id.group_custom_invidious);
Group nitter_custom_group = findViewById(R.id.group_custom_nitter);
Group bibliogram_custom_group = findViewById(R.id.group_custom_bibliogram);
Group teddit_custom_group = findViewById(R.id.group_custom_teddit);
Group osm_custom_group = findViewById(R.id.group_custom_osm);
SwitchCompat enable_nitter = findViewById(R.id.enable_nitter);
SwitchCompat enable_invidious = findViewById(R.id.enable_invidious);
SwitchCompat enable_bibliogram = findViewById(R.id.enable_bibliogram);
SwitchCompat enable_teddit = findViewById(R.id.enable_teddit);
SwitchCompat enable_osm = findViewById(R.id.enable_osm);
ImageButton expand_instance_nitter = findViewById(R.id.button_expand_instance_nitter);
ImageButton expand_instance_invidious = findViewById(R.id.button_expand_instance_invidious);
ImageButton expand_instance_bibliogram = findViewById(R.id.button_expand_instance_bibliogram);
ImageButton expand_instance_teddit = findViewById(R.id.button_expand_instance_teddit);
ImageButton expand_instance_osm = findViewById(R.id.button_expand_instance_osm);
boolean nitter_enabled = sharedpreferences.getBoolean(SET_NITTER_ENABLED, true);
boolean invidious_enabled = sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
@ -149,19 +106,11 @@ public class MainActivity extends AppCompatActivity {
boolean geouri_enabled = sharedpreferences.getBoolean(SET_GEO_URIS, false);
boolean embedded_player = sharedpreferences.getBoolean(SET_EMBEDDED_PLAYER, false);
enable_nitter.setChecked(nitter_enabled);
enable_invidious.setChecked(invidious_enabled);
enable_bibliogram.setChecked(bibliogram_enabled);
enable_teddit.setChecked(teddit_enabled);
enable_osm.setChecked(osm_enabled);
ImageButton save_instance_nitter = findViewById(R.id.button_save_instance_nitter);
ImageButton save_instance_invidious = findViewById(R.id.button_save_instance_invidious);
ImageButton save_instance_bibliogram = findViewById(R.id.button_save_instance_bibliogram);
ImageButton save_instance_teddit = findViewById(R.id.button_save_instance_teddit);
ImageButton save_instance_osm = findViewById(R.id.button_save_instance_osm);
CheckBox enable_geo_uris = findViewById(R.id.enable_geo_uris);
CheckBox enable_embed_player = findViewById(R.id.enable_embed_player);
binding.enableNitter.setChecked(nitter_enabled);
binding.enableInvidious.setChecked(invidious_enabled);
binding.enableBibliogram.setChecked(bibliogram_enabled);
binding.enableTeddit.setChecked(teddit_enabled);
binding.enableOsm.setChecked(osm_enabled);
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
@ -170,288 +119,284 @@ public class MainActivity extends AppCompatActivity {
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
invidious_current_group.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
nitter_current_group.setVisibility(nitter_enabled ? View.VISIBLE : View.GONE);
bibliogram_current_group.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
teddit_current_group.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
osm_current_group.setVisibility((osm_enabled && geouri_enabled) ? View.VISIBLE : View.GONE);
enable_geo_uris.setVisibility(osm_enabled ? View.VISIBLE : View.GONE);
enable_embed_player.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
binding.groupCurrentInvidious.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
binding.groupCurrentNitter.setVisibility(nitter_enabled ? View.VISIBLE : View.GONE);
binding.groupCurrentBibliogram.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
binding.groupCurrentTeddit.setVisibility(bibliogram_enabled ? View.VISIBLE : View.GONE);
binding.groupCurrentOsm.setVisibility((osm_enabled && geouri_enabled) ? View.VISIBLE : View.GONE);
binding.enableGeoUris.setVisibility(osm_enabled ? View.VISIBLE : View.GONE);
binding.enableEmbedPlayer.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
enable_invidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableInvidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_INVIDIOUS_ENABLED, isChecked);
editor.apply();
invidious_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
invidious_custom_group.setVisibility(View.GONE);
enable_embed_player.setVisibility(isChecked ? View.VISIBLE : View.GONE);
expand_instance_invidious.setRotation(0);
binding.groupCurrentInvidious.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomInvidious.setVisibility(View.GONE);
binding.enableEmbedPlayer.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.buttonExpandInstanceInvidious.setRotation(0);
});
enable_nitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableNitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_NITTER_ENABLED, isChecked);
editor.apply();
nitter_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
nitter_custom_group.setVisibility(View.GONE);
expand_instance_nitter.setRotation(0);
binding.groupCurrentNitter.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomNitter.setVisibility(View.GONE);
binding.buttonExpandInstanceNitter.setRotation(0);
});
enable_bibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableBibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_BIBLIOGRAM_ENABLED, isChecked);
editor.apply();
bibliogram_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
bibliogram_custom_group.setVisibility(View.GONE);
expand_instance_bibliogram.setRotation(0);
binding.groupCurrentBibliogram.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomBibliogram.setVisibility(View.GONE);
binding.buttonExpandInstanceBibliogram.setRotation(0);
});
enable_teddit.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableTeddit.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_TEDDIT_ENABLED, isChecked);
editor.apply();
teddit_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
teddit_custom_group.setVisibility(View.GONE);
expand_instance_teddit.setRotation(0);
binding.groupCurrentTeddit.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomTeddit.setVisibility(View.GONE);
binding.buttonExpandInstanceTeddit.setRotation(0);
});
enable_osm.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableOsm.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_OSM_ENABLED, isChecked);
editor.apply();
osm_custom_group.setVisibility(View.GONE);
enable_geo_uris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
expand_instance_osm.setRotation(0);
binding.groupCustomOsm.setVisibility(View.GONE);
binding.enableGeoUris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.buttonExpandInstanceOsm.setRotation(0);
boolean geo = sharedpreferences.getBoolean(SET_GEO_URIS, false);
if (isChecked) {
if (geo) {
osm_current_group.setVisibility(View.GONE);
osm_custom_group.setVisibility(View.GONE);
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
} else {
osm_current_group.setVisibility(View.VISIBLE);
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
}
} else {
osm_current_group.setVisibility(View.GONE);
binding.groupCurrentOsm.setVisibility(View.GONE);
}
});
expand_instance_nitter.setOnClickListener(v -> {
boolean custom_instance_visibility = nitter_custom_group.getVisibility() == View.VISIBLE;
binding.buttonExpandInstanceNitter.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomNitter.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
expand_instance_nitter.setRotation(0f);
nitter_custom_group.setVisibility(View.GONE);
binding.buttonExpandInstanceNitter.setRotation(0f);
binding.groupCustomNitter.setVisibility(View.GONE);
} else {
expand_instance_nitter.setRotation(180f);
nitter_custom_group.setVisibility(View.VISIBLE);
binding.buttonExpandInstanceNitter.setRotation(180f);
binding.groupCustomNitter.setVisibility(View.VISIBLE);
}
if (nitterHost != null) {
nitter_instance.setText(nitterHost);
binding.nitterInstance.setText(nitterHost);
} else {
nitter_instance.setText("");
binding.nitterInstance.setText("");
}
});
expand_instance_invidious.setOnClickListener(v -> {
boolean custom_instance_visibility = invidious_custom_group.getVisibility() == View.VISIBLE;
binding.buttonExpandInstanceInvidious.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomInvidious.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
expand_instance_invidious.setRotation(0f);
invidious_custom_group.setVisibility(View.GONE);
binding.buttonExpandInstanceInvidious.setRotation(0f);
binding.groupCustomInvidious.setVisibility(View.GONE);
} else {
expand_instance_invidious.setRotation(180f);
invidious_custom_group.setVisibility(View.VISIBLE);
binding.buttonExpandInstanceInvidious.setRotation(180f);
binding.groupCustomInvidious.setVisibility(View.VISIBLE);
}
if (invidiousHost != null) {
invidious_instance.setText(invidiousHost);
binding.invidiousInstance.setText(invidiousHost);
} else {
invidious_instance.setText("");
binding.invidiousInstance.setText("");
}
});
expand_instance_bibliogram.setOnClickListener(v -> {
boolean custom_instance_visibility = bibliogram_custom_group.getVisibility() == View.VISIBLE;
binding.buttonExpandInstanceBibliogram.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomBibliogram.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
expand_instance_bibliogram.setRotation(0f);
bibliogram_custom_group.setVisibility(View.GONE);
binding.buttonExpandInstanceBibliogram.setRotation(0f);
binding.groupCustomBibliogram.setVisibility(View.GONE);
} else {
expand_instance_bibliogram.setRotation(180f);
bibliogram_custom_group.setVisibility(View.VISIBLE);
binding.buttonExpandInstanceBibliogram.setRotation(180f);
binding.groupCustomBibliogram.setVisibility(View.VISIBLE);
}
if (bibliogramHost != null) {
bibliogram_instance.setText(bibliogramHost);
binding.bibliogramInstance.setText(bibliogramHost);
} else {
bibliogram_instance.setText("");
binding.bibliogramInstance.setText("");
}
});
expand_instance_teddit.setOnClickListener(v -> {
boolean custom_instance_visibility = teddit_custom_group.getVisibility() == View.VISIBLE;
binding.buttonExpandInstanceTeddit.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomTeddit.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
expand_instance_teddit.setRotation(0f);
teddit_custom_group.setVisibility(View.GONE);
binding.buttonExpandInstanceTeddit.setRotation(0f);
binding.groupCustomTeddit.setVisibility(View.GONE);
} else {
expand_instance_teddit.setRotation(180f);
teddit_custom_group.setVisibility(View.VISIBLE);
binding.buttonExpandInstanceTeddit.setRotation(180f);
binding.groupCustomTeddit.setVisibility(View.VISIBLE);
}
if (tedditHost != null) {
teddit_instance.setText(tedditHost);
binding.tedditInstance.setText(tedditHost);
} else {
teddit_instance.setText("");
binding.tedditInstance.setText("");
}
});
expand_instance_osm.setOnClickListener(v -> {
boolean custom_instance_visibility = osm_custom_group.getVisibility() == View.VISIBLE;
binding.buttonExpandInstanceOsm.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomOsm.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
expand_instance_osm.setRotation(0f);
osm_custom_group.setVisibility(View.GONE);
binding.buttonExpandInstanceOsm.setRotation(0f);
binding.groupCustomOsm.setVisibility(View.GONE);
} else {
expand_instance_osm.setRotation(180f);
osm_custom_group.setVisibility(View.VISIBLE);
binding.buttonExpandInstanceOsm.setRotation(180f);
binding.groupCustomOsm.setVisibility(View.VISIBLE);
}
if (osmHost != null) {
osm_instance.setText(osmHost);
binding.osmInstance.setText(osmHost);
} else {
osm_instance.setText("");
binding.osmInstance.setText("");
}
});
if (nitterHost != null) {
nitter_instance.setText(nitterHost);
current_instance_nitter.setText(nitterHost);
binding.nitterInstance.setText(nitterHost);
binding.currentInstanceNitter.setText(nitterHost);
} else {
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
}
if (invidiousHost != null) {
invidious_instance.setText(invidiousHost);
current_instance_invidious.setText(invidiousHost);
binding.invidiousInstance.setText(invidiousHost);
binding.currentInstanceInvidious.setText(invidiousHost);
} else {
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
}
if (bibliogramHost != null) {
bibliogram_instance.setText(bibliogramHost);
current_instance_bibliogram.setText(bibliogramHost);
binding.bibliogramInstance.setText(bibliogramHost);
binding.currentInstanceBibliogram.setText(bibliogramHost);
} else {
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
}
if (tedditHost != null) {
teddit_instance.setText(tedditHost);
current_instance_teddit.setText(tedditHost);
binding.tedditInstance.setText(tedditHost);
binding.currentInstanceTeddit.setText(tedditHost);
} else {
current_instance_teddit.setText(DEFAULT_TEDDIT_HOST);
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
}
if (osmHost != null) {
osm_instance.setText(osmHost);
current_instance_osm.setText(osmHost);
binding.osmInstance.setText(osmHost);
binding.currentInstanceOsm.setText(osmHost);
} else {
current_instance_osm.setText(DEFAULT_OSM_HOST);
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
}
enable_geo_uris.setChecked(geouri_enabled);
binding.enableGeoUris.setChecked(geouri_enabled);
if (geouri_enabled) {
osm_current_group.setVisibility(View.GONE);
osm_custom_group.setVisibility(View.GONE);
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
} else if (osm_enabled) {
osm_current_group.setVisibility(View.VISIBLE);
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
} else {
osm_custom_group.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
}
enable_embed_player.setChecked(embedded_player);
save_instance_nitter.setOnClickListener(v -> {
binding.enableEmbedPlayer.setChecked(embedded_player);
binding.buttonSaveInstanceNitter.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (nitter_instance.getText() != null && nitter_instance.getText().toString().trim().length() > 0) {
String custom_instance = nitter_instance.getText().toString().toLowerCase().trim();
if (binding.nitterInstance.getText() != null && binding.nitterInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.nitterInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_NITTER_HOST, custom_instance);
current_instance_nitter.setText(custom_instance);
binding.currentInstanceNitter.setText(custom_instance);
} else {
editor.putString(SET_NITTER_HOST, null);
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
}
editor.apply();
});
save_instance_invidious.setOnClickListener(v -> {
binding.buttonSaveInstanceInvidious.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (invidious_instance.getText() != null && invidious_instance.getText().toString().trim().length() > 0) {
String custom_instance = invidious_instance.getText().toString().toLowerCase().trim();
if (binding.invidiousInstance.getText() != null && binding.invidiousInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.invidiousInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_INVIDIOUS_HOST, custom_instance);
current_instance_invidious.setText(custom_instance);
binding.currentInstanceInvidious.setText(custom_instance);
} else {
editor.putString(SET_INVIDIOUS_HOST, null);
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
}
editor.apply();
});
save_instance_bibliogram.setOnClickListener(v -> {
binding.buttonSaveInstanceBibliogram.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (bibliogram_instance.getText() != null && bibliogram_instance.getText().toString().trim().length() > 0) {
String custom_instance = bibliogram_instance.getText().toString().toLowerCase().trim();
if (binding.bibliogramInstance.getText() != null && binding.bibliogramInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.bibliogramInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_BIBLIOGRAM_HOST, custom_instance);
current_instance_bibliogram.setText(custom_instance);
binding.currentInstanceBibliogram.setText(custom_instance);
} else {
editor.putString(SET_BIBLIOGRAM_HOST, null);
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
}
editor.apply();
});
save_instance_teddit.setOnClickListener(v -> {
binding.buttonSaveInstanceTeddit.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (teddit_instance.getText() != null && teddit_instance.getText().toString().trim().length() > 0) {
String custom_instance = teddit_instance.getText().toString().toLowerCase().trim();
if (binding.tedditInstance.getText() != null && binding.tedditInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.tedditInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_TEDDIT_HOST, custom_instance);
current_instance_teddit.setText(custom_instance);
binding.currentInstanceTeddit.setText(custom_instance);
} else {
editor.putString(SET_TEDDIT_HOST, null);
current_instance_teddit.setText(DEFAULT_TEDDIT_HOST);
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
}
editor.apply();
});
save_instance_osm.setOnClickListener(v -> {
binding.buttonSaveInstanceOsm.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (osm_instance.getText() != null && osm_instance.getText().toString().trim().length() > 0) {
String custom_instance = osm_instance.getText().toString().toLowerCase().trim();
if (binding.osmInstance.getText() != null && binding.osmInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.osmInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_OSM_HOST, custom_instance);
} else {
editor.putString(SET_OSM_HOST, null);
current_instance_osm.setText(DEFAULT_OSM_HOST);
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
}
editor.apply();
});
Button configure = findViewById(R.id.configure);
configure.setOnClickListener(v -> {
binding.configure.setOnClickListener(v -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getApplicationInfo().packageName, null);
intent.setData(uri);
startActivity(intent);
});
ImageButton buttonExpand = findViewById(R.id.button_expand);
buttonExpand.setOnClickListener(v -> {
binding.buttonExpand.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, CheckAppActivity.class);
startActivity(intent);
});
ImageButton buttonPing = findViewById(R.id.instances);
buttonPing.setOnClickListener(v -> {
binding.instances.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, InstanceActivity.class);
startActivity(intent);
});
enable_geo_uris.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableGeoUris.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_GEO_URIS, isChecked);
editor.apply();
TextView osm_indications = findViewById(R.id.osm_indications);
if (isChecked) {
expand_instance_osm.setRotation(0f);
osm_current_group.setVisibility(View.GONE);
osm_custom_group.setVisibility(View.GONE);
osm_indications.setText(R.string.redirect_gm_to_geo_uri);
binding.buttonExpandInstanceOsm.setRotation(0f);
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
binding.osmIndications.setText(R.string.redirect_gm_to_geo_uri);
} else {
osm_current_group.setVisibility(View.VISIBLE);
osm_indications.setText(R.string.redirect_gm_to_osm);
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
binding.osmIndications.setText(R.string.redirect_gm_to_osm);
}
});
enable_embed_player.setOnCheckedChangeListener((buttonView, isChecked) -> {
binding.enableEmbedPlayer.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_EMBEDDED_PLAYER, isChecked);
editor.apply();
@ -462,48 +407,48 @@ public class MainActivity extends AppCompatActivity {
switch (key) {
case SET_NITTER_HOST:
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
nitter_custom_group.setVisibility(View.GONE);
binding.groupCustomNitter.setVisibility(View.GONE);
if (nitterHost != null && nitterHost.trim().length() > 0)
current_instance_nitter.setText(nitterHost);
binding.currentInstanceNitter.setText(nitterHost);
else
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
expand_instance_nitter.setRotation(0f);
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
binding.buttonExpandInstanceNitter.setRotation(0f);
break;
case SET_INVIDIOUS_HOST:
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
invidious_custom_group.setVisibility(View.GONE);
binding.groupCustomInvidious.setVisibility(View.GONE);
if (invidiousHost != null && invidiousHost.trim().length() > 0)
current_instance_invidious.setText(invidiousHost);
binding.currentInstanceInvidious.setText(invidiousHost);
else
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
expand_instance_invidious.setRotation(0f);
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
binding.buttonExpandInstanceInvidious.setRotation(0f);
break;
case SET_BIBLIOGRAM_HOST:
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
bibliogram_custom_group.setVisibility(View.GONE);
binding.groupCustomBibliogram.setVisibility(View.GONE);
if (bibliogramHost != null && bibliogramHost.trim().length() > 0)
current_instance_bibliogram.setText(bibliogramHost);
binding.currentInstanceBibliogram.setText(bibliogramHost);
else
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
expand_instance_bibliogram.setRotation(0f);
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
binding.buttonExpandInstanceBibliogram.setRotation(0f);
break;
case SET_TEDDIT_HOST:
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
teddit_custom_group.setVisibility(View.GONE);
binding.groupCustomTeddit.setVisibility(View.GONE);
if (tedditHost != null && tedditHost.trim().length() > 0)
current_instance_teddit.setText(tedditHost);
binding.currentInstanceTeddit.setText(tedditHost);
else
current_instance_teddit.setText(DEFAULT_TEDDIT_HOST);
expand_instance_teddit.setRotation(0f);
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
binding.buttonExpandInstanceTeddit.setRotation(0f);
break;
case SET_OSM_HOST:
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
osm_custom_group.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
if (osmHost != null && osmHost.trim().length() > 0)
current_instance_osm.setText(osmHost);
binding.currentInstanceOsm.setText(osmHost);
else
current_instance_osm.setText(DEFAULT_OSM_HOST);
expand_instance_osm.setRotation(0f);
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
binding.buttonExpandInstanceOsm.setRotation(0f);
break;
}
@ -516,8 +461,7 @@ public class MainActivity extends AppCompatActivity {
);
//Invidious custom settings
ImageButton invidious_settings = findViewById(R.id.invidious_settings);
invidious_settings.setOnClickListener(v -> {
binding.invidiousSettings.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, InvidiousSettingsActivity.class);
startActivity(intent);
});
@ -564,15 +508,6 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
TextInputEditText teddit_instance = findViewById(R.id.teddit_instance);
TextView current_instance_nitter = findViewById(R.id.current_instance_nitter);
TextView current_instance_invidious = findViewById(R.id.current_instance_invidious);
TextView current_instance_bibliogram = findViewById(R.id.current_instance_bibliogram);
TextView current_instance_teddit = findViewById(R.id.current_instance_teddit);
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
String nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
@ -580,32 +515,31 @@ public class MainActivity extends AppCompatActivity {
String bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
String tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
if (nitterHost != null) {
nitter_instance.setText(nitterHost);
current_instance_nitter.setText(nitterHost);
binding.nitterInstance.setText(nitterHost);
binding.currentInstanceNitter.setText(nitterHost);
}
if (invidiousHost != null) {
invidious_instance.setText(invidiousHost);
current_instance_invidious.setText(invidiousHost);
binding.invidiousInstance.setText(invidiousHost);
binding.currentInstanceInvidious.setText(invidiousHost);
}
if (bibliogramHost != null) {
bibliogram_instance.setText(bibliogramHost);
current_instance_bibliogram.setText(bibliogramHost);
binding.bibliogramInstance.setText(bibliogramHost);
binding.currentInstanceBibliogram.setText(bibliogramHost);
}
if (tedditHost != null) {
teddit_instance.setText(tedditHost);
current_instance_teddit.setText(tedditHost);
binding.tedditInstance.setText(tedditHost);
binding.currentInstanceTeddit.setText(tedditHost);
}
ConstraintLayout display_indications = findViewById(R.id.display_indications);
if (BuildConfig.fullLinks) {
List<ResolveInfo> resolveInfos = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_VIEW, Uri.parse("https://fedilab.app")), PackageManager.MATCH_DEFAULT_ONLY);
String thisPackageName = getApplicationContext().getPackageName();
if (resolveInfos.size() == 1 && resolveInfos.get(0).activityInfo.packageName.compareTo(thisPackageName) == 0) {
display_indications.setVisibility(View.VISIBLE);
binding.displayIndications.setVisibility(View.VISIBLE);
} else {
display_indications.setVisibility(View.GONE);
binding.displayIndications.setVisibility(View.GONE);
}
} else {
display_indications.setVisibility(View.GONE);
binding.displayIndications.setVisibility(View.GONE);
}
}
}

View File

@ -10,7 +10,7 @@
android:layout_height="0dp"
android:layout_weight="1">
<ScrollView
<androidx.core.widget.NestedScrollView
android:id="@+id/scrolling_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -63,7 +63,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
</androidx.core.widget.NestedScrollView>
<RelativeLayout
android:id="@+id/loader"