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
|
|
|
|
2020-04-16 18:05:39 +02:00
|
|
|
import android.content.BroadcastReceiver;
|
2020-01-25 11:00:55 +01:00
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
2020-04-16 18:05:39 +02:00
|
|
|
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;
|
|
|
|
import android.widget.Button;
|
2020-02-17 15:34:09 +01:00
|
|
|
import android.widget.CheckBox;
|
2020-02-17 13:59:11 +01:00
|
|
|
import android.widget.ImageButton;
|
2020-02-17 15:34:09 +01:00
|
|
|
import android.widget.TextView;
|
2020-01-25 11:00:55 +01:00
|
|
|
|
2020-02-18 12:25:20 +01:00
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.appcompat.widget.SwitchCompat;
|
|
|
|
import androidx.appcompat.widget.Toolbar;
|
2020-04-20 17:56:49 +02:00
|
|
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
2020-02-28 09:33:49 +01:00
|
|
|
import androidx.constraintlayout.widget.Group;
|
2020-01-28 18:54:19 +01:00
|
|
|
|
2020-01-25 11:00:55 +01:00
|
|
|
import com.google.android.material.snackbar.Snackbar;
|
|
|
|
import com.google.android.material.textfield.TextInputEditText;
|
|
|
|
|
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-04-16 18:05:39 +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";
|
|
|
|
public static final String SET_OSM_HOST = "set_osm_host";
|
|
|
|
public static final String SET_BIBLIOGRAM_HOST = "set_bibliogram_host";
|
2020-01-25 10:25:02 +01:00
|
|
|
@SuppressWarnings("unused")
|
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";
|
|
|
|
public static String SET_NITTER_ENABLED = "set_nitter_enabled";
|
|
|
|
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";
|
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";
|
2020-04-16 18:05:39 +02:00
|
|
|
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;
|
|
|
|
private String osmHost;
|
|
|
|
|
2020-01-25 10:25:02 +01:00
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.activity_main);
|
|
|
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
|
|
|
setSupportActionBar(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
|
|
|
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_osm = findViewById(R.id.current_instance_osm);
|
|
|
|
|
|
|
|
|
2020-01-25 11:00:55 +01:00
|
|
|
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
|
|
|
|
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
|
2020-02-19 08:37:39 +01:00
|
|
|
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
|
2020-02-02 19:12:04 +01:00
|
|
|
TextInputEditText osm_instance = findViewById(R.id.osm_instance);
|
2020-01-28 18:54:19 +01:00
|
|
|
|
2020-02-20 15:25:41 +01:00
|
|
|
|
2020-02-28 09:33:49 +01:00
|
|
|
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 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 osm_custom_group = findViewById(R.id.group_custom_osm);
|
2020-02-20 15:25:41 +01:00
|
|
|
|
|
|
|
|
2020-01-28 18:54:19 +01:00
|
|
|
SwitchCompat enable_nitter = findViewById(R.id.enable_nitter);
|
|
|
|
SwitchCompat enable_invidious = findViewById(R.id.enable_invidious);
|
2020-02-19 08:37:39 +01:00
|
|
|
SwitchCompat enable_bibliogram = findViewById(R.id.enable_bibliogram);
|
2020-01-29 12:58:26 +01:00
|
|
|
SwitchCompat enable_osm = findViewById(R.id.enable_osm);
|
2020-01-28 18:54:19 +01:00
|
|
|
|
2020-02-28 09:33:49 +01:00
|
|
|
|
|
|
|
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_osm = findViewById(R.id.button_expand_instance_osm);
|
|
|
|
|
|
|
|
|
2020-01-28 18:54:19 +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-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-01-28 18:54:19 +01:00
|
|
|
|
|
|
|
enable_nitter.setChecked(nitter_enabled);
|
|
|
|
enable_invidious.setChecked(invidious_enabled);
|
2020-02-19 08:37:39 +01:00
|
|
|
enable_bibliogram.setChecked(bibliogram_enabled);
|
2020-01-29 12:58:26 +01:00
|
|
|
enable_osm.setChecked(osm_enabled);
|
2020-02-28 09:33:49 +01:00
|
|
|
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_osm = findViewById(R.id.button_save_instance_osm);
|
|
|
|
|
2020-02-20 11:20:30 +01:00
|
|
|
CheckBox enable_geo_uris = findViewById(R.id.enable_geo_uris);
|
2020-04-04 19:22:49 +02:00
|
|
|
CheckBox enable_embed_player = findViewById(R.id.enable_embed_player);
|
|
|
|
|
2020-04-15 18:19:19 +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);
|
|
|
|
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
|
2020-01-28 18:54:19 +01:00
|
|
|
|
2020-02-28 09:33:49 +01:00
|
|
|
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);
|
|
|
|
osm_current_group.setVisibility((osm_enabled && geouri_enabled) ? View.VISIBLE : View.GONE);
|
|
|
|
enable_geo_uris.setVisibility(osm_enabled ? View.VISIBLE : View.GONE);
|
2020-04-10 17:25:57 +02:00
|
|
|
enable_embed_player.setVisibility(invidious_enabled ? View.VISIBLE : View.GONE);
|
2020-02-20 15:25:41 +01:00
|
|
|
|
2020-01-28 18:54:19 +01:00
|
|
|
enable_invidious.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putBoolean(SET_INVIDIOUS_ENABLED, isChecked);
|
|
|
|
editor.apply();
|
2020-02-28 09:33:49 +01:00
|
|
|
invidious_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
|
|
|
invidious_custom_group.setVisibility(View.GONE);
|
2020-04-10 17:25:57 +02:00
|
|
|
enable_embed_player.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
2020-02-28 09:33:49 +01:00
|
|
|
expand_instance_invidious.setRotation(0);
|
2020-01-28 18:54:19 +01:00
|
|
|
});
|
|
|
|
enable_nitter.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putBoolean(SET_NITTER_ENABLED, isChecked);
|
|
|
|
editor.apply();
|
2020-02-28 09:33:49 +01:00
|
|
|
nitter_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
|
|
|
nitter_custom_group.setVisibility(View.GONE);
|
|
|
|
expand_instance_nitter.setRotation(0);
|
2020-01-28 18:54:19 +01:00
|
|
|
});
|
2020-02-19 08:37:39 +01:00
|
|
|
enable_bibliogram.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putBoolean(SET_BIBLIOGRAM_ENABLED, isChecked);
|
|
|
|
editor.apply();
|
2020-02-28 09:33:49 +01:00
|
|
|
bibliogram_current_group.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
|
|
|
bibliogram_custom_group.setVisibility(View.GONE);
|
|
|
|
expand_instance_bibliogram.setRotation(0);
|
2020-02-19 08:37:39 +01:00
|
|
|
});
|
2020-01-29 12:58:26 +01:00
|
|
|
enable_osm.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putBoolean(SET_OSM_ENABLED, isChecked);
|
|
|
|
editor.apply();
|
2020-02-28 09:33:49 +01:00
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
2020-02-20 15:25:41 +01:00
|
|
|
enable_geo_uris.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
2020-02-28 09:33:49 +01:00
|
|
|
expand_instance_osm.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) {
|
|
|
|
osm_current_group.setVisibility(View.GONE);
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
|
|
|
} else {
|
|
|
|
osm_current_group.setVisibility(View.VISIBLE);
|
|
|
|
}
|
2020-03-01 17:18:14 +01:00
|
|
|
} else {
|
|
|
|
osm_current_group.setVisibility(View.GONE);
|
2020-02-28 09:33:49 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
expand_instance_nitter.setOnClickListener(v -> {
|
|
|
|
boolean custom_instance_visibility = nitter_custom_group.getVisibility() == View.VISIBLE;
|
|
|
|
if (custom_instance_visibility) {
|
|
|
|
expand_instance_nitter.setRotation(0f);
|
|
|
|
nitter_custom_group.setVisibility(View.GONE);
|
|
|
|
} else {
|
|
|
|
expand_instance_nitter.setRotation(180f);
|
|
|
|
nitter_custom_group.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (nitterHost != null) {
|
|
|
|
nitter_instance.setText(nitterHost);
|
|
|
|
} else {
|
|
|
|
nitter_instance.setText("");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
expand_instance_invidious.setOnClickListener(v -> {
|
|
|
|
boolean custom_instance_visibility = invidious_custom_group.getVisibility() == View.VISIBLE;
|
|
|
|
if (custom_instance_visibility) {
|
|
|
|
expand_instance_invidious.setRotation(0f);
|
|
|
|
invidious_custom_group.setVisibility(View.GONE);
|
|
|
|
} else {
|
|
|
|
expand_instance_invidious.setRotation(180f);
|
|
|
|
invidious_custom_group.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (invidiousHost != null) {
|
|
|
|
invidious_instance.setText(invidiousHost);
|
|
|
|
} else {
|
|
|
|
invidious_instance.setText("");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
expand_instance_bibliogram.setOnClickListener(v -> {
|
|
|
|
boolean custom_instance_visibility = bibliogram_custom_group.getVisibility() == View.VISIBLE;
|
|
|
|
if (custom_instance_visibility) {
|
|
|
|
expand_instance_bibliogram.setRotation(0f);
|
|
|
|
bibliogram_custom_group.setVisibility(View.GONE);
|
2020-02-20 15:25:41 +01:00
|
|
|
} else {
|
2020-02-28 09:33:49 +01:00
|
|
|
expand_instance_bibliogram.setRotation(180f);
|
|
|
|
bibliogram_custom_group.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (bibliogramHost != null) {
|
|
|
|
bibliogram_instance.setText(bibliogramHost);
|
|
|
|
} else {
|
|
|
|
bibliogram_instance.setText("");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
expand_instance_osm.setOnClickListener(v -> {
|
|
|
|
boolean custom_instance_visibility = osm_custom_group.getVisibility() == View.VISIBLE;
|
|
|
|
if (custom_instance_visibility) {
|
|
|
|
expand_instance_osm.setRotation(0f);
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
|
|
|
} else {
|
|
|
|
expand_instance_osm.setRotation(180f);
|
|
|
|
osm_custom_group.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (osmHost != null) {
|
|
|
|
osm_instance.setText(osmHost);
|
|
|
|
} else {
|
|
|
|
osm_instance.setText("");
|
2020-02-20 15:25:41 +01:00
|
|
|
}
|
2020-01-29 12:58:26 +01:00
|
|
|
});
|
2020-01-28 18:54:19 +01:00
|
|
|
|
2020-02-28 09:33:49 +01:00
|
|
|
|
2020-02-18 12:25:20 +01:00
|
|
|
if (nitterHost != null) {
|
2020-01-25 11:00:55 +01:00
|
|
|
nitter_instance.setText(nitterHost);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_nitter.setText(nitterHost);
|
|
|
|
} else {
|
|
|
|
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
2020-01-25 11:00:55 +01:00
|
|
|
}
|
2020-02-18 12:25:20 +01:00
|
|
|
if (invidiousHost != null) {
|
2020-01-25 11:00:55 +01:00
|
|
|
invidious_instance.setText(invidiousHost);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_invidious.setText(invidiousHost);
|
|
|
|
} else {
|
|
|
|
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
2020-01-25 11:00:55 +01:00
|
|
|
}
|
2020-02-19 08:37:39 +01:00
|
|
|
if (bibliogramHost != null) {
|
|
|
|
bibliogram_instance.setText(bibliogramHost);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_bibliogram.setText(bibliogramHost);
|
|
|
|
} else {
|
|
|
|
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
2020-02-19 08:37:39 +01:00
|
|
|
}
|
2020-02-18 12:25:20 +01:00
|
|
|
if (osmHost != null) {
|
2020-02-02 19:12:04 +01:00
|
|
|
osm_instance.setText(osmHost);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_osm.setText(osmHost);
|
|
|
|
} else {
|
|
|
|
current_instance_osm.setText(DEFAULT_OSM_HOST);
|
2020-02-02 19:12:04 +01:00
|
|
|
}
|
2020-02-20 15:25:41 +01:00
|
|
|
enable_geo_uris.setChecked(geouri_enabled);
|
|
|
|
if (geouri_enabled) {
|
2020-02-28 09:33:49 +01:00
|
|
|
osm_current_group.setVisibility(View.GONE);
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
2020-03-29 12:17:10 +02:00
|
|
|
} else if (osm_enabled) {
|
2020-02-28 09:33:49 +01:00
|
|
|
osm_current_group.setVisibility(View.VISIBLE);
|
2020-03-01 17:18:14 +01:00
|
|
|
} else {
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
2020-02-20 15:25:41 +01:00
|
|
|
}
|
|
|
|
|
2020-04-04 19:22:49 +02:00
|
|
|
enable_embed_player.setChecked(embedded_player);
|
2020-02-28 09:33:49 +01:00
|
|
|
save_instance_nitter.setOnClickListener(v -> {
|
2020-01-25 11:00:55 +01:00
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
if (nitter_instance.getText() != null && nitter_instance.getText().toString().trim().length() > 0) {
|
2020-02-28 09:33:49 +01:00
|
|
|
String custom_instance = nitter_instance.getText().toString().toLowerCase().trim();
|
|
|
|
editor.putString(SET_NITTER_HOST, custom_instance);
|
|
|
|
current_instance_nitter.setText(custom_instance);
|
2020-01-25 11:00:55 +01:00
|
|
|
} else {
|
|
|
|
editor.putString(SET_NITTER_HOST, null);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
2020-01-25 11:00:55 +01:00
|
|
|
}
|
2020-02-28 09:33:49 +01:00
|
|
|
editor.apply();
|
|
|
|
});
|
|
|
|
save_instance_invidious.setOnClickListener(v -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
2020-01-25 11:00:55 +01:00
|
|
|
if (invidious_instance.getText() != null && invidious_instance.getText().toString().trim().length() > 0) {
|
2020-02-28 09:33:49 +01:00
|
|
|
String custom_instance = invidious_instance.getText().toString().toLowerCase().trim();
|
|
|
|
editor.putString(SET_INVIDIOUS_HOST, custom_instance);
|
|
|
|
current_instance_invidious.setText(custom_instance);
|
2020-01-25 11:00:55 +01:00
|
|
|
} else {
|
|
|
|
editor.putString(SET_INVIDIOUS_HOST, null);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
2020-01-25 11:00:55 +01:00
|
|
|
}
|
2020-02-28 09:33:49 +01:00
|
|
|
editor.apply();
|
|
|
|
});
|
|
|
|
save_instance_bibliogram.setOnClickListener(v -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
2020-02-19 08:37:39 +01:00
|
|
|
if (bibliogram_instance.getText() != null && bibliogram_instance.getText().toString().trim().length() > 0) {
|
2020-02-28 09:33:49 +01:00
|
|
|
String custom_instance = bibliogram_instance.getText().toString().toLowerCase().trim();
|
|
|
|
editor.putString(SET_BIBLIOGRAM_HOST, custom_instance);
|
|
|
|
current_instance_bibliogram.setText(custom_instance);
|
2020-02-19 08:37:39 +01:00
|
|
|
} else {
|
|
|
|
editor.putString(SET_BIBLIOGRAM_HOST, null);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
2020-02-19 08:37:39 +01:00
|
|
|
}
|
2020-02-28 09:33:49 +01:00
|
|
|
editor.apply();
|
|
|
|
});
|
|
|
|
save_instance_osm.setOnClickListener(v -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
2020-02-02 19:12:04 +01:00
|
|
|
if (osm_instance.getText() != null && osm_instance.getText().toString().trim().length() > 0) {
|
2020-02-28 09:33:49 +01:00
|
|
|
String custom_instance = osm_instance.getText().toString().toLowerCase().trim();
|
|
|
|
editor.putString(SET_OSM_HOST, custom_instance);
|
2020-02-02 19:12:04 +01:00
|
|
|
} else {
|
|
|
|
editor.putString(SET_OSM_HOST, null);
|
2020-02-28 09:33:49 +01:00
|
|
|
current_instance_osm.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-02-05 17:45:18 +01:00
|
|
|
Button configure = findViewById(R.id.configure);
|
|
|
|
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);
|
|
|
|
});
|
|
|
|
|
2020-02-17 13:59:11 +01:00
|
|
|
ImageButton buttonExpand = findViewById(R.id.button_expand);
|
|
|
|
buttonExpand.setOnClickListener(v -> {
|
2020-04-15 18:19:19 +02:00
|
|
|
Intent intent = new Intent(MainActivity.this, CheckAppActivity.class);
|
|
|
|
startActivity(intent);
|
2020-02-17 13:59:11 +01:00
|
|
|
});
|
|
|
|
|
2020-02-20 11:20:30 +01:00
|
|
|
ImageButton buttonPing = findViewById(R.id.instances);
|
|
|
|
buttonPing.setOnClickListener(v -> {
|
|
|
|
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-02-17 15:34:09 +01:00
|
|
|
enable_geo_uris.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putBoolean(SET_GEO_URIS, isChecked);
|
|
|
|
editor.apply();
|
|
|
|
TextView osm_indications = findViewById(R.id.osm_indications);
|
2020-02-18 12:25:20 +01:00
|
|
|
if (isChecked) {
|
2020-04-04 19:49:44 +02:00
|
|
|
expand_instance_osm.setRotation(0f);
|
2020-02-28 09:33:49 +01:00
|
|
|
osm_current_group.setVisibility(View.GONE);
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
2020-02-17 15:34:09 +01:00
|
|
|
osm_indications.setText(R.string.redirect_gm_to_geo_uri);
|
2020-02-18 12:25:20 +01:00
|
|
|
} else {
|
2020-02-28 09:33:49 +01:00
|
|
|
osm_current_group.setVisibility(View.VISIBLE);
|
2020-02-17 15:34:09 +01:00
|
|
|
osm_indications.setText(R.string.redirect_gm_to_osm);
|
|
|
|
}
|
|
|
|
});
|
2020-04-04 19:22:49 +02:00
|
|
|
enable_embed_player.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
|
|
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);
|
|
|
|
nitter_custom_group.setVisibility(View.GONE);
|
|
|
|
if (nitterHost != null && nitterHost.trim().length() > 0)
|
|
|
|
current_instance_nitter.setText(nitterHost);
|
|
|
|
else
|
|
|
|
current_instance_nitter.setText(DEFAULT_NITTER_HOST);
|
|
|
|
expand_instance_nitter.setRotation(0f);
|
|
|
|
break;
|
|
|
|
case SET_INVIDIOUS_HOST:
|
|
|
|
invidiousHost = sharedpreferences.getString(SET_INVIDIOUS_HOST, null);
|
|
|
|
invidious_custom_group.setVisibility(View.GONE);
|
|
|
|
if (invidiousHost != null && invidiousHost.trim().length() > 0)
|
|
|
|
current_instance_invidious.setText(invidiousHost);
|
|
|
|
else
|
|
|
|
current_instance_invidious.setText(DEFAULT_INVIDIOUS_HOST);
|
|
|
|
expand_instance_invidious.setRotation(0f);
|
|
|
|
break;
|
|
|
|
case SET_BIBLIOGRAM_HOST:
|
|
|
|
bibliogramHost = sharedpreferences.getString(SET_BIBLIOGRAM_HOST, null);
|
|
|
|
bibliogram_custom_group.setVisibility(View.GONE);
|
|
|
|
if (bibliogramHost != null && bibliogramHost.trim().length() > 0)
|
|
|
|
current_instance_bibliogram.setText(bibliogramHost);
|
|
|
|
else
|
|
|
|
current_instance_bibliogram.setText(DEFAULT_BIBLIOGRAM_HOST);
|
|
|
|
expand_instance_bibliogram.setRotation(0f);
|
|
|
|
break;
|
|
|
|
case SET_OSM_HOST:
|
|
|
|
osmHost = sharedpreferences.getString(SET_OSM_HOST, null);
|
|
|
|
osm_custom_group.setVisibility(View.GONE);
|
|
|
|
if (osmHost != null && osmHost.trim().length() > 0)
|
|
|
|
current_instance_osm.setText(osmHost);
|
|
|
|
else
|
|
|
|
current_instance_osm.setText(DEFAULT_OSM_HOST);
|
|
|
|
expand_instance_osm.setRotation(0f);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (key.equals(SET_NITTER_HOST) || key.equals(SET_INVIDIOUS_HOST) || key.equals(SET_BIBLIOGRAM_HOST) || key.equals(SET_OSM_HOST)) {
|
|
|
|
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
|
|
|
|
ImageButton invidious_settings = findViewById(R.id.invidious_settings);
|
|
|
|
invidious_settings.setOnClickListener(v -> {
|
|
|
|
Intent intent = new Intent(MainActivity.this, InvidiousSettingsActivity.class);
|
|
|
|
startActivity(intent);
|
|
|
|
});
|
|
|
|
|
2020-04-16 18:05:39 +02:00
|
|
|
registerReceiver(broadcastReceiver, new IntentFilter(KILL_ACTIVITY));
|
2020-01-25 10:25:02 +01:00
|
|
|
}
|
|
|
|
|
2020-04-15 18:19:19 +02: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
|
|
|
|
2020-04-16 18:05:39 +02: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-02-20 12:10:39 +01:00
|
|
|
TextInputEditText nitter_instance = findViewById(R.id.nitter_instance);
|
|
|
|
TextInputEditText invidious_instance = findViewById(R.id.invidious_instance);
|
|
|
|
TextInputEditText bibliogram_instance = findViewById(R.id.bibliogram_instance);
|
2020-04-02 17:43:22 +02:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
2020-02-20 12:10:39 +01: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);
|
|
|
|
if (nitterHost != null) {
|
|
|
|
nitter_instance.setText(nitterHost);
|
2020-04-02 17:43:22 +02:00
|
|
|
current_instance_nitter.setText(nitterHost);
|
2020-02-20 12:10:39 +01:00
|
|
|
}
|
|
|
|
if (invidiousHost != null) {
|
|
|
|
invidious_instance.setText(invidiousHost);
|
2020-04-02 17:43:22 +02:00
|
|
|
current_instance_invidious.setText(invidiousHost);
|
2020-02-20 12:10:39 +01:00
|
|
|
}
|
|
|
|
if (bibliogramHost != null) {
|
|
|
|
bibliogram_instance.setText(bibliogramHost);
|
2020-04-02 17:43:22 +02:00
|
|
|
current_instance_bibliogram.setText(bibliogramHost);
|
2020-02-20 12:10:39 +01:00
|
|
|
}
|
2020-04-20 17:56:49 +02:00
|
|
|
ConstraintLayout display_indications = findViewById(R.id.display_indications);
|
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) {
|
|
|
|
display_indications.setVisibility(View.VISIBLE);
|
|
|
|
} else {
|
|
|
|
display_indications.setVisibility(View.GONE);
|
|
|
|
}
|
2020-04-20 17:56:49 +02:00
|
|
|
} else {
|
|
|
|
display_indications.setVisibility(View.GONE);
|
|
|
|
}
|
2020-04-03 14:44:27 +02:00
|
|
|
}
|
2020-01-25 10:25:02 +01:00
|
|
|
}
|