UntrackMe-app-android-redir.../app/src/main/java/app/fedilab/nitterizeme/activities/MainActivity.java

672 lines
34 KiB
Java
Raw Normal View History

2020-04-15 17:51:18 +02:00
package app.fedilab.nitterizeme.activities;
2020-01-25 10:25:02 +01:00
/* Copyright 2020 Thomas Schneider
*
2020-04-10 17:25:19 +02:00
* This file is a part of UntrackMe
2020-01-25 10:25:02 +01:00
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
* License, or (at your option) any later version.
*
2020-04-10 17:25:19 +02:00
* UntrackMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
2020-01-25 10:25:02 +01:00
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
2020-04-10 17:25:19 +02:00
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
2020-01-25 10:25:02 +01:00
* see <http://www.gnu.org/licenses>. */
2020-02-18 12:25:20 +01:00
import android.content.BroadcastReceiver;
2020-01-25 11:00:55 +01:00
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
2020-01-25 11:00:55 +01:00
import android.content.SharedPreferences;
2020-04-20 17:56:49 +02:00
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
2020-01-25 15:38:39 +01:00
import android.net.Uri;
2020-01-25 10:25:02 +01:00
import android.os.Bundle;
2020-02-05 17:45:18 +01:00
import android.provider.Settings;
2020-01-25 10:25:02 +01:00
import android.view.Menu;
import android.view.MenuItem;
2020-01-25 11:00:55 +01:00
import android.view.View;
2020-02-18 12:25:20 +01:00
import androidx.appcompat.app.AppCompatActivity;
2020-12-01 10:29:24 +01:00
2020-01-25 11:00:55 +01:00
import com.google.android.material.snackbar.Snackbar;
2020-12-01 10:29:24 +01:00
2020-04-20 17:56:49 +02:00
import java.util.List;
2020-01-25 11:00:55 +01:00
import java.util.Objects;
2020-01-25 10:25:02 +01:00
2020-05-04 11:33:58 +02:00
import app.fedilab.nitterizeme.BuildConfig;
2020-04-15 17:51:18 +02:00
import app.fedilab.nitterizeme.R;
2020-12-01 10:29:24 +01:00
import app.fedilab.nitterizeme.databinding.ActivityMainBinding;
import app.fedilab.nitterizeme.databinding.ContentMainBinding;
2020-04-15 17:51:18 +02:00
import static app.fedilab.nitterizeme.helpers.Utils.KILL_ACTIVITY;
2020-01-25 10:25:02 +01:00
public class MainActivity extends AppCompatActivity {
2020-02-18 12:25:20 +01:00
public static final String APP_PREFS = "app_prefs";
2020-02-29 11:07:38 +01:00
public static final String SET_NITTER_HOST = "set_nitter_host";
public static final String SET_INVIDIOUS_HOST = "set_invidious_host";
2020-11-30 18:59:29 +01:00
public static final String SET_TEDDIT_HOST = "set_teddit_host";
2020-02-29 11:07:38 +01:00
public static final String SET_OSM_HOST = "set_osm_host";
public static final String SET_BIBLIOGRAM_HOST = "set_bibliogram_host";
2021-10-25 14:50:06 +02:00
public static final String SET_SCRIBERIP_HOST = "set_scriberip_host";
public static final String SET_WIKILESS_HOST = "set_wikiless_host";
2020-09-06 18:55:06 +02:00
@SuppressWarnings({"unused", "RedundantSuppression"})
2020-04-10 17:25:19 +02:00
public static String TAG = "UntrackMe";
2020-02-18 12:25:20 +01:00
public static String DEFAULT_NITTER_HOST = "nitter.net";
2020-09-06 18:27:07 +02:00
public static String DEFAULT_INVIDIOUS_HOST = "invidious.snopyta.org";
2020-02-18 12:25:20 +01:00
public static String SET_INVIDIOUS_ENABLED = "set_invidious_enabled";
2020-11-30 18:59:29 +01:00
public static String SET_TEDDIT_ENABLED = "set_teddit_enabled";
2020-02-18 12:25:20 +01:00
public static String SET_NITTER_ENABLED = "set_nitter_enabled";
2021-10-25 14:50:06 +02:00
public static String SET_SCRIBERIP_ENABLED = "set_scriberip_enabled";
public static String SET_WIKILESS_ENABLED = "set_wikiless_enabled";
2020-02-18 12:25:20 +01:00
public static String SET_OSM_ENABLED = "set_osm_enabled";
public static String DEFAULT_OSM_HOST = "www.openstreetmap.org";
2020-02-19 08:37:39 +01:00
public static String SET_BIBLIOGRAM_ENABLED = "set_bibliogram_enabled";
public static String DEFAULT_BIBLIOGRAM_HOST = "bibliogram.art";
2021-10-25 14:50:06 +02:00
public static String DEFAULT_SCRIBERIP_HOST = "scribe.rip";
public static String DEFAULT_WIKILESS_HOST = "wikiless.org";
2020-11-30 18:59:29 +01:00
public static String DEFAULT_TEDDIT_HOST = "teddit.net";
2020-02-18 12:25:20 +01:00
public static String SET_GEO_URIS = "set_geo_uris";
2020-04-04 19:22:49 +02:00
public static String SET_EMBEDDED_PLAYER = "set_embedded_player";
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
assert action != null;
if (action.compareTo(KILL_ACTIVITY) == 0) {
finish();
}
}
};
2020-02-28 09:33:49 +01:00
private String nitterHost;
private String invidiousHost;
private String bibliogramHost;
2020-11-30 18:59:29 +01:00
private String tedditHost;
2021-10-25 14:50:06 +02:00
private String scriberipHost;
2021-10-25 17:23:14 +02:00
private String wikilessHost;
2020-02-28 09:33:49 +01:00
private String osmHost;
2020-12-01 10:29:24 +01:00
private ContentMainBinding binding;
2020-02-28 09:33:49 +01:00
2020-01-25 10:25:02 +01:00
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
2021-10-25 15:36:37 +02:00
ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
View viewRoot = activityMainBinding.getRoot();
2020-12-01 10:29:24 +01:00
setContentView(viewRoot);
2021-10-25 15:36:37 +02:00
binding = activityMainBinding.contentMain;
setSupportActionBar(activityMainBinding.toolbar);
2020-01-25 11:00:55 +01:00
Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
2020-01-25 10:25:02 +01:00
2020-02-28 09:33:49 +01:00
boolean nitter_enabled = sharedpreferences.getBoolean(SET_NITTER_ENABLED, true);
boolean invidious_enabled = sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
2020-01-29 12:58:26 +01:00
boolean osm_enabled = sharedpreferences.getBoolean(SET_OSM_ENABLED, true);
2020-02-19 08:37:39 +01:00
boolean bibliogram_enabled = sharedpreferences.getBoolean(SET_BIBLIOGRAM_ENABLED, true);
2020-11-30 18:59:29 +01:00
boolean teddit_enabled = sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
2021-10-25 14:50:06 +02:00
boolean scriberip_enabled = sharedpreferences.getBoolean(SET_SCRIBERIP_ENABLED, true);
2021-10-25 17:23:14 +02:00
boolean wikiless_enabled = sharedpreferences.getBoolean(SET_WIKILESS_ENABLED, true);
2020-02-20 15:25:41 +01:00
boolean geouri_enabled = sharedpreferences.getBoolean(SET_GEO_URIS, false);
2020-04-04 19:22:49 +02:00
boolean embedded_player = sharedpreferences.getBoolean(SET_EMBEDDED_PLAYER, false);
2020-12-01 10:29:24 +01:00
binding.enableNitter.setChecked(nitter_enabled);
binding.enableInvidious.setChecked(invidious_enabled);
binding.enableBibliogram.setChecked(bibliogram_enabled);
binding.enableTeddit.setChecked(teddit_enabled);
2021-10-25 14:50:06 +02:00
binding.enableScriberip.setChecked(scriberip_enabled);
2021-10-25 17:23:14 +02:00
binding.enableWikiless.setChecked(wikiless_enabled);
2020-12-01 10:29:24 +01:00
binding.enableOsm.setChecked(osm_enabled);
2020-04-04 19:22:49 +02:00
2021-10-25 14:50:06 +02:00
2020-02-28 09:33:49 +01:00
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
2020-11-30 18:59:29 +01:00
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
2021-10-25 14:50:06 +02:00
scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
2021-10-25 17:23:14 +02:00
wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
2020-02-28 09:33:49 +01:00
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
2020-12-01 10:29:24 +01:00
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);
2021-10-25 14:50:06 +02:00
binding.groupCurrentScriberip.setVisibility(scriberip_enabled ? View.VISIBLE : View.GONE);
2021-10-25 17:23:14 +02:00
binding.groupCurrentWikiless.setVisibility(wikiless_enabled ? View.VISIBLE : View.GONE);
2020-12-01 10:29:24 +01:00
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);
2020-02-20 15:25:41 +01:00
2020-12-01 10:29:24 +01:00
binding.enableInvidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_INVIDIOUS_ENABLED, isChecked);
editor.apply();
2020-12-01 10:29:24 +01:00
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);
});
2020-12-01 10:29:24 +01:00
binding.enableNitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_NITTER_ENABLED, isChecked);
editor.apply();
2020-12-01 10:29:24 +01:00
binding.groupCurrentNitter.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomNitter.setVisibility(View.GONE);
binding.buttonExpandInstanceNitter.setRotation(0);
});
2020-12-01 10:29:24 +01:00
binding.enableBibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
2020-02-19 08:37:39 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_BIBLIOGRAM_ENABLED, isChecked);
editor.apply();
2020-12-01 10:29:24 +01:00
binding.groupCurrentBibliogram.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomBibliogram.setVisibility(View.GONE);
binding.buttonExpandInstanceBibliogram.setRotation(0);
2020-02-19 08:37:39 +01:00
});
2020-12-01 10:29:24 +01:00
binding.enableTeddit.setOnCheckedChangeListener((buttonView, isChecked) -> {
2020-11-30 18:59:29 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_TEDDIT_ENABLED, isChecked);
editor.apply();
2020-12-01 10:29:24 +01:00
binding.groupCurrentTeddit.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomTeddit.setVisibility(View.GONE);
binding.buttonExpandInstanceTeddit.setRotation(0);
2020-11-30 18:59:29 +01:00
});
2021-10-25 14:50:06 +02:00
binding.enableScriberip.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_SCRIBERIP_ENABLED, isChecked);
editor.apply();
binding.groupCurrentScriberip.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomScriberip.setVisibility(View.GONE);
binding.buttonExpandInstanceScriberip.setRotation(0);
});
2021-10-25 17:23:14 +02:00
binding.enableWikiless.setOnCheckedChangeListener((buttonView, isChecked) -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_WIKILESS_ENABLED, isChecked);
editor.apply();
binding.groupCurrentWikiless.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.groupCustomWikiless.setVisibility(View.GONE);
binding.buttonExpandInstanceWikiless.setRotation(0);
});
2020-12-01 10:29:24 +01:00
binding.enableOsm.setOnCheckedChangeListener((buttonView, isChecked) -> {
2020-01-29 12:58:26 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_OSM_ENABLED, isChecked);
editor.apply();
2020-12-01 10:29:24 +01:00
binding.groupCustomOsm.setVisibility(View.GONE);
binding.enableGeoUris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
binding.buttonExpandInstanceOsm.setRotation(0);
2020-02-20 15:25:41 +01:00
boolean geo = sharedpreferences.getBoolean(SET_GEO_URIS, false);
2020-02-28 09:33:49 +01:00
if (isChecked) {
if (geo) {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
2020-02-28 09:33:49 +01:00
}
2020-03-01 17:18:14 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
}
});
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceNitter.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomNitter.getVisibility() == View.VISIBLE;
2020-02-28 09:33:49 +01:00
if (custom_instance_visibility) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceNitter.setRotation(0f);
binding.groupCustomNitter.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceNitter.setRotation(180f);
binding.groupCustomNitter.setVisibility(View.VISIBLE);
2020-02-28 09:33:49 +01:00
}
if (nitterHost != null) {
2020-12-01 10:29:24 +01:00
binding.nitterInstance.setText(nitterHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.nitterInstance.setText("");
2020-02-28 09:33:49 +01:00
}
});
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceInvidious.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomInvidious.getVisibility() == View.VISIBLE;
2020-02-28 09:33:49 +01:00
if (custom_instance_visibility) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceInvidious.setRotation(0f);
binding.groupCustomInvidious.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceInvidious.setRotation(180f);
binding.groupCustomInvidious.setVisibility(View.VISIBLE);
2020-02-28 09:33:49 +01:00
}
if (invidiousHost != null) {
2020-12-01 10:29:24 +01:00
binding.invidiousInstance.setText(invidiousHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.invidiousInstance.setText("");
2020-02-28 09:33:49 +01:00
}
});
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceBibliogram.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomBibliogram.getVisibility() == View.VISIBLE;
2020-02-28 09:33:49 +01:00
if (custom_instance_visibility) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceBibliogram.setRotation(0f);
binding.groupCustomBibliogram.setVisibility(View.GONE);
2020-02-20 15:25:41 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceBibliogram.setRotation(180f);
binding.groupCustomBibliogram.setVisibility(View.VISIBLE);
2020-02-28 09:33:49 +01:00
}
if (bibliogramHost != null) {
2020-12-01 10:29:24 +01:00
binding.bibliogramInstance.setText(bibliogramHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.bibliogramInstance.setText("");
2020-02-28 09:33:49 +01:00
}
});
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceTeddit.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomTeddit.getVisibility() == View.VISIBLE;
2020-11-30 18:59:29 +01:00
if (custom_instance_visibility) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceTeddit.setRotation(0f);
binding.groupCustomTeddit.setVisibility(View.GONE);
2020-11-30 18:59:29 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceTeddit.setRotation(180f);
binding.groupCustomTeddit.setVisibility(View.VISIBLE);
2020-11-30 18:59:29 +01:00
}
if (tedditHost != null) {
2020-12-01 10:29:24 +01:00
binding.tedditInstance.setText(tedditHost);
2020-11-30 18:59:29 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.tedditInstance.setText("");
2020-11-30 18:59:29 +01:00
}
});
2021-10-25 14:50:06 +02:00
binding.buttonExpandInstanceScriberip.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomScriberip.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
binding.buttonExpandInstanceScriberip.setRotation(0f);
binding.groupCustomScriberip.setVisibility(View.GONE);
} else {
binding.buttonExpandInstanceScriberip.setRotation(180f);
binding.groupCustomScriberip.setVisibility(View.VISIBLE);
}
if (scriberipHost != null) {
binding.scriberipInstance.setText(scriberipHost);
} else {
binding.scriberipInstance.setText("");
}
});
2021-10-25 17:23:14 +02:00
binding.buttonExpandInstanceWikiless.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomWikiless.getVisibility() == View.VISIBLE;
if (custom_instance_visibility) {
binding.buttonExpandInstanceWikiless.setRotation(0f);
binding.groupCustomWikiless.setVisibility(View.GONE);
} else {
binding.buttonExpandInstanceWikiless.setRotation(180f);
binding.groupCustomWikiless.setVisibility(View.VISIBLE);
}
if (wikilessHost != null) {
binding.wikilessInstance.setText(wikilessHost);
} else {
binding.wikilessInstance.setText("");
}
});
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceOsm.setOnClickListener(v -> {
boolean custom_instance_visibility = binding.groupCustomOsm.getVisibility() == View.VISIBLE;
2020-02-28 09:33:49 +01:00
if (custom_instance_visibility) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceOsm.setRotation(0f);
binding.groupCustomOsm.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceOsm.setRotation(180f);
binding.groupCustomOsm.setVisibility(View.VISIBLE);
2020-02-28 09:33:49 +01:00
}
if (osmHost != null) {
2020-12-01 10:29:24 +01:00
binding.osmInstance.setText(osmHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.osmInstance.setText("");
2020-02-20 15:25:41 +01:00
}
2020-01-29 12:58:26 +01:00
});
2020-02-28 09:33:49 +01:00
2020-02-18 12:25:20 +01:00
if (nitterHost != null) {
2020-12-01 10:29:24 +01:00
binding.nitterInstance.setText(nitterHost);
binding.currentInstanceNitter.setText(nitterHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
2020-01-25 11:00:55 +01:00
}
2020-02-18 12:25:20 +01:00
if (invidiousHost != null) {
2020-12-01 10:29:24 +01:00
binding.invidiousInstance.setText(invidiousHost);
binding.currentInstanceInvidious.setText(invidiousHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
2020-01-25 11:00:55 +01:00
}
2020-02-19 08:37:39 +01:00
if (bibliogramHost != null) {
2020-12-01 10:29:24 +01:00
binding.bibliogramInstance.setText(bibliogramHost);
binding.currentInstanceBibliogram.setText(bibliogramHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
2020-02-19 08:37:39 +01:00
}
2020-11-30 18:59:29 +01:00
if (tedditHost != null) {
2020-12-01 10:29:24 +01:00
binding.tedditInstance.setText(tedditHost);
binding.currentInstanceTeddit.setText(tedditHost);
2020-11-30 18:59:29 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
2020-11-30 18:59:29 +01:00
}
2021-10-25 14:50:06 +02:00
if (scriberipHost != null) {
binding.scriberipInstance.setText(scriberipHost);
binding.currentInstanceScriberip.setText(scriberipHost);
} else {
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
}
2021-10-25 17:23:14 +02:00
if (wikilessHost != null) {
binding.wikilessInstance.setText(wikilessHost);
binding.currentInstanceWikiless.setText(wikilessHost);
} else {
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
}
2020-02-18 12:25:20 +01:00
if (osmHost != null) {
2020-12-01 10:29:24 +01:00
binding.osmInstance.setText(osmHost);
binding.currentInstanceOsm.setText(osmHost);
2020-02-28 09:33:49 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
2020-02-02 19:12:04 +01:00
}
2020-12-01 10:29:24 +01:00
binding.enableGeoUris.setChecked(geouri_enabled);
2020-02-20 15:25:41 +01:00
if (geouri_enabled) {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
2020-03-29 12:17:10 +02:00
} else if (osm_enabled) {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
2020-03-01 17:18:14 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.groupCustomOsm.setVisibility(View.GONE);
2020-02-20 15:25:41 +01:00
}
2020-12-01 10:29:24 +01:00
binding.enableEmbedPlayer.setChecked(embedded_player);
binding.buttonSaveInstanceNitter.setOnClickListener(v -> {
2020-01-25 11:00:55 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
2020-12-01 10:29:24 +01:00
if (binding.nitterInstance.getText() != null && binding.nitterInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.nitterInstance.getText().toString().toLowerCase().trim();
2020-02-28 09:33:49 +01:00
editor.putString(SET_NITTER_HOST, custom_instance);
2020-12-01 10:29:24 +01:00
binding.currentInstanceNitter.setText(custom_instance);
2020-01-25 11:00:55 +01:00
} else {
editor.putString(SET_NITTER_HOST, null);
2020-12-01 10:29:24 +01:00
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
2020-01-25 11:00:55 +01:00
}
2020-02-28 09:33:49 +01:00
editor.apply();
});
2020-12-01 10:29:24 +01:00
binding.buttonSaveInstanceInvidious.setOnClickListener(v -> {
2020-02-28 09:33:49 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
2020-12-01 10:29:24 +01:00
if (binding.invidiousInstance.getText() != null && binding.invidiousInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.invidiousInstance.getText().toString().toLowerCase().trim();
2020-02-28 09:33:49 +01:00
editor.putString(SET_INVIDIOUS_HOST, custom_instance);
2020-12-01 10:29:24 +01:00
binding.currentInstanceInvidious.setText(custom_instance);
2020-01-25 11:00:55 +01:00
} else {
editor.putString(SET_INVIDIOUS_HOST, null);
2020-12-01 10:29:24 +01:00
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
2020-01-25 11:00:55 +01:00
}
2020-02-28 09:33:49 +01:00
editor.apply();
});
2020-12-01 10:29:24 +01:00
binding.buttonSaveInstanceBibliogram.setOnClickListener(v -> {
2020-02-28 09:33:49 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
2020-12-01 10:29:24 +01:00
if (binding.bibliogramInstance.getText() != null && binding.bibliogramInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.bibliogramInstance.getText().toString().toLowerCase().trim();
2020-02-28 09:33:49 +01:00
editor.putString(SET_BIBLIOGRAM_HOST, custom_instance);
2020-12-01 10:29:24 +01:00
binding.currentInstanceBibliogram.setText(custom_instance);
2020-02-19 08:37:39 +01:00
} else {
editor.putString(SET_BIBLIOGRAM_HOST, null);
2020-12-01 10:29:24 +01:00
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
2020-02-19 08:37:39 +01:00
}
2020-02-28 09:33:49 +01:00
editor.apply();
});
2020-12-01 10:29:24 +01:00
binding.buttonSaveInstanceTeddit.setOnClickListener(v -> {
2020-11-30 18:59:29 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
2020-12-01 10:29:24 +01:00
if (binding.tedditInstance.getText() != null && binding.tedditInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.tedditInstance.getText().toString().toLowerCase().trim();
2020-11-30 18:59:29 +01:00
editor.putString(SET_TEDDIT_HOST, custom_instance);
2020-12-01 10:29:24 +01:00
binding.currentInstanceTeddit.setText(custom_instance);
2020-11-30 18:59:29 +01:00
} else {
editor.putString(SET_TEDDIT_HOST, null);
2020-12-01 10:29:24 +01:00
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
2020-11-30 18:59:29 +01:00
}
editor.apply();
});
2021-10-25 14:50:06 +02:00
binding.buttonSaveInstanceScriberip.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (binding.scriberipInstance.getText() != null && binding.scriberipInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.scriberipInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_SCRIBERIP_HOST, custom_instance);
binding.currentInstanceScriberip.setText(custom_instance);
} else {
editor.putString(SET_SCRIBERIP_HOST, null);
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
}
editor.apply();
});
2021-10-25 17:23:14 +02:00
binding.buttonSaveInstanceWikiless.setOnClickListener(v -> {
SharedPreferences.Editor editor = sharedpreferences.edit();
if (binding.wikilessInstance.getText() != null && binding.wikilessInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.wikilessInstance.getText().toString().toLowerCase().trim();
editor.putString(SET_WIKILESS_HOST, custom_instance);
binding.currentInstanceWikiless.setText(custom_instance);
} else {
editor.putString(SET_WIKILESS_HOST, null);
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
}
editor.apply();
});
2020-12-01 10:29:24 +01:00
binding.buttonSaveInstanceOsm.setOnClickListener(v -> {
2020-02-28 09:33:49 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
2020-12-01 10:29:24 +01:00
if (binding.osmInstance.getText() != null && binding.osmInstance.getText().toString().trim().length() > 0) {
String custom_instance = binding.osmInstance.getText().toString().toLowerCase().trim();
2020-02-28 09:33:49 +01:00
editor.putString(SET_OSM_HOST, custom_instance);
2020-02-02 19:12:04 +01:00
} else {
editor.putString(SET_OSM_HOST, null);
2020-12-01 10:29:24 +01:00
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
2020-02-02 19:12:04 +01:00
}
2020-01-25 11:00:55 +01:00
editor.apply();
});
2020-01-25 15:38:39 +01:00
2020-12-01 10:29:24 +01:00
binding.configure.setOnClickListener(v -> {
2020-02-05 17:45:18 +01:00
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getApplicationInfo().packageName, null);
intent.setData(uri);
startActivity(intent);
});
2020-12-01 10:29:24 +01:00
binding.buttonExpand.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, CheckAppActivity.class);
startActivity(intent);
2020-02-17 13:59:11 +01:00
});
2020-12-01 10:29:24 +01:00
binding.instances.setOnClickListener(v -> {
2020-02-20 11:20:30 +01:00
Intent intent = new Intent(MainActivity.this, InstanceActivity.class);
startActivity(intent);
});
2020-01-25 15:38:39 +01:00
2020-02-20 11:20:30 +01:00
2020-12-01 10:29:24 +01:00
binding.enableGeoUris.setOnCheckedChangeListener((buttonView, isChecked) -> {
2020-02-17 15:34:09 +01:00
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_GEO_URIS, isChecked);
editor.apply();
2020-02-18 12:25:20 +01:00
if (isChecked) {
2020-12-01 10:29:24 +01:00
binding.buttonExpandInstanceOsm.setRotation(0f);
binding.groupCurrentOsm.setVisibility(View.GONE);
binding.groupCustomOsm.setVisibility(View.GONE);
binding.osmIndications.setText(R.string.redirect_gm_to_geo_uri);
2020-02-18 12:25:20 +01:00
} else {
2020-12-01 10:29:24 +01:00
binding.groupCurrentOsm.setVisibility(View.VISIBLE);
binding.osmIndications.setText(R.string.redirect_gm_to_osm);
2020-02-17 15:34:09 +01:00
}
});
2020-12-01 10:29:24 +01:00
binding.enableEmbedPlayer.setOnCheckedChangeListener((buttonView, isChecked) -> {
2020-04-04 19:22:49 +02:00
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(SET_EMBEDDED_PLAYER, isChecked);
editor.apply();
});
2020-02-17 15:34:09 +01:00
2020-02-28 09:33:49 +01:00
sharedpreferences.registerOnSharedPreferenceChangeListener(
(sharedPreferences, key) -> {
switch (key) {
case SET_NITTER_HOST:
nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
2020-12-01 10:29:24 +01:00
binding.groupCustomNitter.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
if (nitterHost != null && nitterHost.trim().length() > 0)
2020-12-01 10:29:24 +01:00
binding.currentInstanceNitter.setText(nitterHost);
2020-02-28 09:33:49 +01:00
else
2020-12-01 10:29:24 +01:00
binding.currentInstanceNitter.setText(DEFAULT_NITTER_HOST);
binding.buttonExpandInstanceNitter.setRotation(0f);
2020-02-28 09:33:49 +01:00
break;
case SET_INVIDIOUS_HOST:
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
2020-12-01 10:29:24 +01:00
binding.groupCustomInvidious.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
if (invidiousHost != null && invidiousHost.trim().length() > 0)
2020-12-01 10:29:24 +01:00
binding.currentInstanceInvidious.setText(invidiousHost);
2020-02-28 09:33:49 +01:00
else
2020-12-01 10:29:24 +01:00
binding.currentInstanceInvidious.setText(DEFAULT_INVIDIOUS_HOST);
binding.buttonExpandInstanceInvidious.setRotation(0f);
2020-02-28 09:33:49 +01:00
break;
case SET_BIBLIOGRAM_HOST:
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
2020-12-01 10:29:24 +01:00
binding.groupCustomBibliogram.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
if (bibliogramHost != null && bibliogramHost.trim().length() > 0)
2020-12-01 10:29:24 +01:00
binding.currentInstanceBibliogram.setText(bibliogramHost);
2020-02-28 09:33:49 +01:00
else
2020-12-01 10:29:24 +01:00
binding.currentInstanceBibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
binding.buttonExpandInstanceBibliogram.setRotation(0f);
2020-02-28 09:33:49 +01:00
break;
2020-11-30 18:59:29 +01:00
case SET_TEDDIT_HOST:
tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
2020-12-01 10:29:24 +01:00
binding.groupCustomTeddit.setVisibility(View.GONE);
2020-11-30 18:59:29 +01:00
if (tedditHost != null && tedditHost.trim().length() > 0)
2020-12-01 10:29:24 +01:00
binding.currentInstanceTeddit.setText(tedditHost);
2020-11-30 18:59:29 +01:00
else
2020-12-01 10:29:24 +01:00
binding.currentInstanceTeddit.setText(DEFAULT_TEDDIT_HOST);
binding.buttonExpandInstanceTeddit.setRotation(0f);
2020-11-30 18:59:29 +01:00
break;
2021-10-25 14:50:06 +02:00
case SET_SCRIBERIP_HOST:
scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
binding.groupCustomScriberip.setVisibility(View.GONE);
if (scriberipHost != null && scriberipHost.trim().length() > 0)
binding.currentInstanceScriberip.setText(scriberipHost);
else
binding.currentInstanceScriberip.setText(DEFAULT_SCRIBERIP_HOST);
binding.buttonExpandInstanceScriberip.setRotation(0f);
break;
2021-10-25 17:23:14 +02:00
case SET_WIKILESS_HOST:
wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
binding.groupCustomWikiless.setVisibility(View.GONE);
if (wikilessHost != null && wikilessHost.trim().length() > 0)
binding.currentInstanceWikiless.setText(wikilessHost);
else
binding.currentInstanceWikiless.setText(DEFAULT_WIKILESS_HOST);
binding.buttonExpandInstanceWikiless.setRotation(0f);
break;
2020-02-28 09:33:49 +01:00
case SET_OSM_HOST:
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
2020-12-01 10:29:24 +01:00
binding.groupCustomOsm.setVisibility(View.GONE);
2020-02-28 09:33:49 +01:00
if (osmHost != null && osmHost.trim().length() > 0)
2020-12-01 10:29:24 +01:00
binding.currentInstanceOsm.setText(osmHost);
2020-02-28 09:33:49 +01:00
else
2020-12-01 10:29:24 +01:00
binding.currentInstanceOsm.setText(DEFAULT_OSM_HOST);
binding.buttonExpandInstanceOsm.setRotation(0f);
2020-02-28 09:33:49 +01:00
break;
}
2020-11-30 18:59:29 +01:00
if (key.equals(SET_NITTER_HOST) || key.equals(SET_INVIDIOUS_HOST) || key.equals(SET_BIBLIOGRAM_HOST) || key.equals(SET_TEDDIT_HOST) || key.equals(SET_OSM_HOST)) {
2020-02-28 09:33:49 +01:00
View parentLayout = findViewById(android.R.id.content);
Snackbar.make(parentLayout, R.string.instances_saved, Snackbar.LENGTH_LONG).show();
}
}
);
2020-05-30 11:07:50 +02:00
//Invidious custom settings
2020-12-01 10:29:24 +01:00
binding.invidiousSettings.setOnClickListener(v -> {
2020-05-30 11:07:50 +02:00
Intent intent = new Intent(MainActivity.this, InvidiousSettingsActivity.class);
startActivity(intent);
});
registerReceiver(broadcastReceiver, new IntentFilter(KILL_ACTIVITY));
2020-01-25 10:25:02 +01:00
}
2020-01-25 10:25:02 +01:00
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
2020-05-04 18:14:47 +02:00
if (!BuildConfig.fullLinks) {
menu.findItem(R.id.action_settings).setVisible(false);
}
2020-01-25 10:25:02 +01:00
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_about) {
2020-01-25 11:00:55 +01:00
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
2020-01-25 10:25:02 +01:00
return true;
2020-04-20 17:56:49 +02:00
} else if (id == R.id.action_settings) {
Intent intent = new Intent(MainActivity.this, DefaultAppActivity.class);
startActivity(intent);
return true;
2020-02-18 12:25:20 +01:00
} else if (id == android.R.id.home) {
2020-01-25 11:00:55 +01:00
finish();
2020-01-25 10:25:02 +01:00
}
return super.onOptionsItemSelected(item);
}
2020-02-05 17:45:18 +01:00
@Override
protected void onDestroy() {
super.onDestroy();
if (broadcastReceiver != null) {
unregisterReceiver(broadcastReceiver);
}
}
2020-02-05 17:45:18 +01:00
@Override
2020-02-18 12:25:20 +01:00
protected void onResume() {
2020-02-05 17:45:18 +01:00
super.onResume();
2020-04-02 17:43:22 +02:00
SharedPreferences sharedpreferences = getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE);
String nitterHost = sharedpreferences.getString(SET_NITTER_HOST, null);
String invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
String bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
2020-11-30 18:59:29 +01:00
String tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, null);
2021-10-25 14:50:06 +02:00
String scriberipHost = sharedpreferences.getString(SET_SCRIBERIP_HOST, null);
2021-10-25 17:23:14 +02:00
String wikilessHost = sharedpreferences.getString(SET_WIKILESS_HOST, null);
if (nitterHost != null) {
2020-12-01 10:29:24 +01:00
binding.nitterInstance.setText(nitterHost);
binding.currentInstanceNitter.setText(nitterHost);
}
if (invidiousHost != null) {
2020-12-01 10:29:24 +01:00
binding.invidiousInstance.setText(invidiousHost);
binding.currentInstanceInvidious.setText(invidiousHost);
}
if (bibliogramHost != null) {
2020-12-01 10:29:24 +01:00
binding.bibliogramInstance.setText(bibliogramHost);
binding.currentInstanceBibliogram.setText(bibliogramHost);
}
2020-11-30 18:59:29 +01:00
if (tedditHost != null) {
2020-12-01 10:29:24 +01:00
binding.tedditInstance.setText(tedditHost);
binding.currentInstanceTeddit.setText(tedditHost);
2020-11-30 18:59:29 +01:00
}
2021-10-25 14:50:06 +02:00
if (scriberipHost != null) {
binding.scriberipInstance.setText(scriberipHost);
binding.currentInstanceScriberip.setText(scriberipHost);
}
2021-10-25 17:23:14 +02:00
if (wikilessHost != null) {
binding.wikilessInstance.setText(wikilessHost);
binding.currentInstanceWikiless.setText(wikilessHost);
}
2020-05-04 17:27:41 +02:00
if (BuildConfig.fullLinks) {
2020-05-04 11:33:58 +02:00
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) {
2020-12-01 10:29:24 +01:00
binding.displayIndications.setVisibility(View.VISIBLE);
2020-05-04 11:33:58 +02:00
} else {
2020-12-01 10:29:24 +01:00
binding.displayIndications.setVisibility(View.GONE);
2020-05-04 11:33:58 +02:00
}
2020-04-20 17:56:49 +02:00
} else {
2020-12-01 10:29:24 +01:00
binding.displayIndications.setVisibility(View.GONE);
2020-04-20 17:56:49 +02:00
}
2020-04-03 14:44:27 +02:00
}
2020-01-25 10:25:02 +01:00
}