Order code
This commit is contained in:
parent
8b3659611a
commit
d4e05ab1e3
|
@ -18,7 +18,7 @@
|
|||
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:name=".activities.MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
<intent-filter>
|
||||
|
@ -28,7 +28,7 @@
|
|||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".TransformActivity"
|
||||
android:name=".activities.TransformActivity"
|
||||
android:noHistory="true"
|
||||
android:theme="@style/Theme.AppCompat.Translucent">
|
||||
<!-- The app should handle these domains, more can be added here -->
|
||||
|
@ -185,17 +185,17 @@
|
|||
|
||||
</activity>
|
||||
<activity
|
||||
android:name="app.fedilab.nitterizeme.InstanceActivity"
|
||||
android:name="app.fedilab.nitterizeme.activities.InstanceActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:theme="@style/AppThemeDialog" />
|
||||
<activity
|
||||
android:name=".AboutActivity"
|
||||
android:name=".activities.AboutActivity"
|
||||
android:configChanges="orientation|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme" />
|
||||
|
||||
<activity
|
||||
android:name="app.fedilab.nitterizeme.WebviewPlayerActivity"
|
||||
android:name="app.fedilab.nitterizeme.activities.WebviewPlayerActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -29,6 +29,8 @@ import android.widget.TextView;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
|
||||
|
||||
public class AboutActivity extends AppCompatActivity {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -45,13 +45,17 @@ import java.util.List;
|
|||
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
|
||||
import static app.fedilab.nitterizeme.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.MainActivity.DEFAULT_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.DEFAULT_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.DEFAULT_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_NITTER_HOST;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.InstanceAdapter;
|
||||
import app.fedilab.nitterizeme.entities.Instance;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.DEFAULT_NITTER_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
|
||||
|
||||
public class InstanceActivity extends AppCompatActivity {
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -45,6 +45,10 @@ import com.google.android.material.textfield.TextInputEditText;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.adapters.AppInfoAdapter;
|
||||
import app.fedilab.nitterizeme.entities.AppInfo;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
public static final String APP_PREFS = "app_prefs";
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -48,17 +48,20 @@ import java.util.Objects;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_BIBLIOGRAM_ENABLED;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_EMBEDDED_PLAYER;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_INVIDIOUS_ENABLED;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_NITTER_ENABLED;
|
||||
import static app.fedilab.nitterizeme.MainActivity.bibliogram_instances;
|
||||
import static app.fedilab.nitterizeme.MainActivity.instagram_domains;
|
||||
import static app.fedilab.nitterizeme.MainActivity.invidious_instances;
|
||||
import static app.fedilab.nitterizeme.MainActivity.nitter_instances;
|
||||
import static app.fedilab.nitterizeme.MainActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.MainActivity.twitter_domains;
|
||||
import static app.fedilab.nitterizeme.MainActivity.youtube_domains;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_EMBEDDED_PLAYER;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_ENABLED;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.bibliogram_instances;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.instagram_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.invidious_instances;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.nitter_instances;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.twitter_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.youtube_domains;
|
||||
|
||||
|
||||
public class TransformActivity extends Activity {
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.activities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -46,6 +46,11 @@ import org.jsoup.nodes.Element;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.helpers.PlayerChromeClient;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
|
||||
public class WebviewPlayerActivity extends AppCompatActivity {
|
||||
|
||||
private static final int EXTERNAL_STORAGE_REQUEST_CODE = 84;
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.adapters;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -32,13 +32,17 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import app.fedilab.nitterizeme.BuildConfig;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.entities.AppInfo;
|
||||
|
||||
public class AppInfoAdapter extends RecyclerView.Adapter {
|
||||
|
||||
private static final int LAYOUT_TITLE = 0;
|
||||
private static final int LAYOUT_INFO = 1;
|
||||
private List<AppInfo> appInfos;
|
||||
|
||||
AppInfoAdapter(List<AppInfo> appInfos) {
|
||||
public AppInfoAdapter(List<AppInfo> appInfos) {
|
||||
this.appInfos = appInfos;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.adapters;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -33,17 +33,21 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static app.fedilab.nitterizeme.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.MainActivity.SET_NITTER_HOST;
|
||||
import app.fedilab.nitterizeme.R;
|
||||
import app.fedilab.nitterizeme.entities.Instance;
|
||||
import app.fedilab.nitterizeme.helpers.Utils;
|
||||
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.APP_PREFS;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_BIBLIOGRAM_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_INVIDIOUS_HOST;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.SET_NITTER_HOST;
|
||||
|
||||
public class InstanceAdapter extends RecyclerView.Adapter {
|
||||
|
||||
private List<Instance> instances;
|
||||
private InstanceAdapter instanceAdapter;
|
||||
|
||||
InstanceAdapter(List<Instance> instances) {
|
||||
public InstanceAdapter(List<Instance> instances) {
|
||||
this.instances = instances;
|
||||
this.instanceAdapter = this;
|
||||
}
|
||||
|
@ -140,7 +144,7 @@ public class InstanceAdapter extends RecyclerView.Adapter {
|
|||
|
||||
}
|
||||
|
||||
void evalLatency() {
|
||||
public void evalLatency() {
|
||||
for (Instance instance : instances) {
|
||||
instance.setLatency(0);
|
||||
Thread thread = new Thread() {
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.entities;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -15,33 +15,33 @@ package app.fedilab.nitterizeme;
|
|||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
|
||||
class AppInfo {
|
||||
public class AppInfo {
|
||||
|
||||
private String domain;
|
||||
private android.content.pm.ApplicationInfo ApplicationInfo;
|
||||
private String title = null;
|
||||
|
||||
String getDomain() {
|
||||
public String getDomain() {
|
||||
return domain;
|
||||
}
|
||||
|
||||
void setDomain(String domain) {
|
||||
public void setDomain(String domain) {
|
||||
this.domain = domain;
|
||||
}
|
||||
|
||||
android.content.pm.ApplicationInfo getApplicationInfo() {
|
||||
public android.content.pm.ApplicationInfo getApplicationInfo() {
|
||||
return ApplicationInfo;
|
||||
}
|
||||
|
||||
void setApplicationInfo(android.content.pm.ApplicationInfo applicationInfo) {
|
||||
public void setApplicationInfo(android.content.pm.ApplicationInfo applicationInfo) {
|
||||
ApplicationInfo = applicationInfo;
|
||||
}
|
||||
|
||||
String getTitle() {
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
void setTitle(String title) {
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.entities;
|
||||
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
|
@ -14,7 +14,7 @@ package app.fedilab.nitterizeme;
|
|||
*
|
||||
* You should have received a copy of the GNU General Public License along with UntrackMe; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
class Instance {
|
||||
public class Instance {
|
||||
|
||||
private String domain;
|
||||
private long latency = -1;
|
||||
|
@ -23,55 +23,55 @@ class Instance {
|
|||
private boolean cloudflare = false;
|
||||
private String locale;
|
||||
|
||||
String getDomain() {
|
||||
public String getDomain() {
|
||||
return domain;
|
||||
}
|
||||
|
||||
void setDomain(String domain) {
|
||||
public void setDomain(String domain) {
|
||||
this.domain = domain;
|
||||
}
|
||||
|
||||
long getLatency() {
|
||||
public long getLatency() {
|
||||
return latency;
|
||||
}
|
||||
|
||||
void setLatency(long latency) {
|
||||
public void setLatency(long latency) {
|
||||
this.latency = latency;
|
||||
}
|
||||
|
||||
boolean isChecked() {
|
||||
public boolean isChecked() {
|
||||
return checked;
|
||||
}
|
||||
|
||||
void setChecked(boolean checked) {
|
||||
public void setChecked(boolean checked) {
|
||||
this.checked = checked;
|
||||
}
|
||||
|
||||
instanceType getType() {
|
||||
public instanceType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
void setType(instanceType type) {
|
||||
public void setType(instanceType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
boolean isCloudflare() {
|
||||
public boolean isCloudflare() {
|
||||
return cloudflare;
|
||||
}
|
||||
|
||||
void setCloudflare(boolean cloudflare) {
|
||||
public void setCloudflare(boolean cloudflare) {
|
||||
this.cloudflare = cloudflare;
|
||||
}
|
||||
|
||||
String getLocale() {
|
||||
public String getLocale() {
|
||||
return locale;
|
||||
}
|
||||
|
||||
void setLocale(String locale) {
|
||||
public void setLocale(String locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
enum instanceType {
|
||||
public enum instanceType {
|
||||
INVIDIOUS,
|
||||
NITTER,
|
||||
BIBLIOGRAM
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.helpers;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -43,7 +43,7 @@ public class PlayerChromeClient extends WebChromeClient implements MediaPlayer.O
|
|||
private Activity activity;
|
||||
|
||||
|
||||
PlayerChromeClient(Activity activity, WebView webView, FrameLayout activityNonVideoView, ViewGroup activityVideoView) {
|
||||
public PlayerChromeClient(Activity activity, WebView webView, FrameLayout activityNonVideoView, ViewGroup activityVideoView) {
|
||||
this.activity = activity;
|
||||
this.isVideoFullscreen = false;
|
||||
this.webView = webView;
|
||||
|
@ -56,7 +56,7 @@ public class PlayerChromeClient extends WebChromeClient implements MediaPlayer.O
|
|||
*
|
||||
* @param callback A VideoEnabledWebChromeClient.ToggledFullscreenCallback callback
|
||||
*/
|
||||
void setOnToggledFullscreen(ToggledFullscreenCallback callback) {
|
||||
public void setOnToggledFullscreen(ToggledFullscreenCallback callback) {
|
||||
this.toggledFullscreenCallback = callback;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package app.fedilab.nitterizeme;
|
||||
package app.fedilab.nitterizeme.helpers;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of UntrackMe
|
||||
|
@ -36,11 +36,11 @@ import java.util.regex.Pattern;
|
|||
import javax.net.ssl.HttpsURLConnection;
|
||||
|
||||
import static android.content.Context.DOWNLOAD_SERVICE;
|
||||
import static app.fedilab.nitterizeme.MainActivity.shortener_domains;
|
||||
import static app.fedilab.nitterizeme.activities.MainActivity.shortener_domains;
|
||||
|
||||
class Utils {
|
||||
public class Utils {
|
||||
|
||||
static final String RECEIVE_STREAMING_URL = "receive_streaming_url";
|
||||
public static final String RECEIVE_STREAMING_URL = "receive_streaming_url";
|
||||
|
||||
private static final String[] UTM_PARAMS = {
|
||||
"utm_\\w+",
|
||||
|
@ -71,7 +71,7 @@ class Utils {
|
|||
|
||||
};
|
||||
private static String urlRegex = "(?i)\\b((?:[a-z][\\w-]+:(?:/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,10}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))";
|
||||
static final Pattern urlPattern = Pattern.compile(
|
||||
public static final Pattern urlPattern = Pattern.compile(
|
||||
urlRegex,
|
||||
Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
||||
|
||||
|
@ -80,7 +80,7 @@ class Utils {
|
|||
*
|
||||
* @param urls ArrayList<String> URL to check
|
||||
*/
|
||||
static void checkUrl(ArrayList<String> urls) {
|
||||
public static void checkUrl(ArrayList<String> urls) {
|
||||
URL url;
|
||||
String newURL = null;
|
||||
String comingURl;
|
||||
|
@ -129,7 +129,7 @@ class Utils {
|
|||
* @param domain String domain name
|
||||
* @return long delay
|
||||
*/
|
||||
static long ping(String domain) {
|
||||
public static long ping(String domain) {
|
||||
long timeDifference = -2;
|
||||
try {
|
||||
long beforeTime = System.currentTimeMillis();
|
||||
|
@ -171,7 +171,7 @@ class Utils {
|
|||
* @param context Context
|
||||
* @param url String download url
|
||||
*/
|
||||
static void manageDownloadsNoPopup(final Context context, final String url) {
|
||||
public static void manageDownloadsNoPopup(final Context context, final String url) {
|
||||
|
||||
final DownloadManager.Request request;
|
||||
try {
|
|
@ -21,7 +21,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:scrollbars="none"
|
||||
tools:context=".AboutActivity">
|
||||
tools:context=".activities.AboutActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".MainActivity">
|
||||
tools:context=".activities.MainActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/black"
|
||||
tools:context=".WebviewPlayerActivity">
|
||||
tools:context=".activities.WebviewPlayerActivity">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/webview_container"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="none"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:context=".MainActivity"
|
||||
tools:context=".activities.MainActivity"
|
||||
tools:showIn="@layout/activity_main">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context="app.fedilab.nitterizeme.MainActivity">
|
||||
tools:context="app.fedilab.nitterizeme.activities.MainActivity">
|
||||
<item
|
||||
android:id="@+id/action_about"
|
||||
android:icon="@drawable/ic_info_outline"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context="app.fedilab.nitterizeme.WebviewPlayerActivity">
|
||||
tools:context="app.fedilab.nitterizeme.activities.WebviewPlayerActivity">
|
||||
<item
|
||||
android:id="@+id/action_share"
|
||||
android:icon="@drawable/ic_share"
|
||||
|
|
Loading…
Reference in New Issue