From 8238ba4320099d33bbc296e43f9bf80f07d19af9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 29 Mar 2020 12:17:10 +0200 Subject: [PATCH] Release 1.6.0 --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 50 +++++++++++++++++- .../fedilab/nitterizeme/AppInfoAdapter.java | 2 +- .../app/fedilab/nitterizeme/MainActivity.java | 4 +- .../nitterizeme/TransformActivity.java | 17 +++++-- .../java/app/fedilab/nitterizeme/Utils.java | 51 ++++++++++++++++++- .../metadata/android/en-US/changelogs/10.txt | 6 +++ 7 files changed, 123 insertions(+), 11 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/10.txt diff --git a/app/build.gradle b/app/build.gradle index e867a09..487a247 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "app.fedilab.nitterizeme" minSdkVersion 15 targetSdkVersion 29 - versionCode 9 - versionName "1.5.2" + versionCode 10 + versionName "1.6.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d96740f..0c856dd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true" - tools:ignore="GoogleAppIndexingWarning"> + tools:ignore="GoogleAppIndexingWarning,UnusedAttribute"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/app/fedilab/nitterizeme/AppInfoAdapter.java b/app/src/main/java/app/fedilab/nitterizeme/AppInfoAdapter.java index c33a194..56f91b6 100644 --- a/app/src/main/java/app/fedilab/nitterizeme/AppInfoAdapter.java +++ b/app/src/main/java/app/fedilab/nitterizeme/AppInfoAdapter.java @@ -24,10 +24,10 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import androidx.constraintlayout.widget.ConstraintLayout; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.RecyclerView; import java.util.List; diff --git a/app/src/main/java/app/fedilab/nitterizeme/MainActivity.java b/app/src/main/java/app/fedilab/nitterizeme/MainActivity.java index 65c278c..d92192d 100644 --- a/app/src/main/java/app/fedilab/nitterizeme/MainActivity.java +++ b/app/src/main/java/app/fedilab/nitterizeme/MainActivity.java @@ -87,6 +87,8 @@ public class MainActivity extends AppCompatActivity { "bit.ly", "tinyurl.com", "goo.gl", + "ow.ly", + "bl.ink" }; private AppInfoAdapter appInfoAdapter; private RecyclerView list_apps; @@ -331,7 +333,7 @@ public class MainActivity extends AppCompatActivity { if (geouri_enabled) { osm_current_group.setVisibility(View.GONE); osm_custom_group.setVisibility(View.GONE); - } else if (osm_enabled){ + } else if (osm_enabled) { osm_current_group.setVisibility(View.VISIBLE); } else { osm_custom_group.setVisibility(View.GONE); diff --git a/app/src/main/java/app/fedilab/nitterizeme/TransformActivity.java b/app/src/main/java/app/fedilab/nitterizeme/TransformActivity.java index 7fb39ab..c2cf3e1 100644 --- a/app/src/main/java/app/fedilab/nitterizeme/TransformActivity.java +++ b/app/src/main/java/app/fedilab/nitterizeme/TransformActivity.java @@ -93,6 +93,7 @@ public class TransformActivity extends Activity { AlertDialog.Builder unshortenAlertBuilder = new AlertDialog.Builder(TransformActivity.this); unshortenAlertBuilder.setTitle(R.string.shortened_detected); + unshortenAlertBuilder.setOnDismissListener(dialog -> finish()); View view = getLayoutInflater().inflate(R.layout.popup_unshorten, new LinearLayout(getApplicationContext()), false); unshortenAlertBuilder.setView(view); unshortenAlertBuilder.setIcon(R.mipmap.ic_launcher); @@ -116,6 +117,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -135,6 +137,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -154,6 +157,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -167,6 +171,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } } @@ -223,6 +228,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -241,6 +247,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -260,6 +267,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -279,6 +287,7 @@ public class TransformActivity extends Activity { delegate.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (delegate.resolveActivity(getPackageManager()) != null) { startActivity(delegate); + finish(); } } else { forwardToBrowser(intent); @@ -380,9 +389,9 @@ public class TransformActivity extends Activity { while (matcher.find()) { final String bibliogram_directory = matcher.group(2); String bibliogramHost = sharedpreferences.getString(MainActivity.SET_BIBLIOGRAM_HOST, MainActivity.DEFAULT_BIBLIOGRAM_HOST).toLowerCase(); - if( bibliogram_directory != null && bibliogram_directory.compareTo("privacy") != 0 ) { + if (bibliogram_directory != null && bibliogram_directory.compareTo("privacy") != 0) { newUrl = "https://" + bibliogramHost + "/u" + bibliogram_directory; - }else{ + } else { newUrl = "https://" + bibliogramHost + bibliogram_directory; } } @@ -513,9 +522,9 @@ public class TransformActivity extends Activity { while (matcher.find()) { final String bibliogram_directory = matcher.group(2); String bibliogramHost = sharedpreferences.getString(MainActivity.SET_BIBLIOGRAM_HOST, MainActivity.DEFAULT_BIBLIOGRAM_HOST).toLowerCase(); - if( bibliogram_directory != null && bibliogram_directory.compareTo("privacy") != 0 ) { + if (bibliogram_directory != null && bibliogram_directory.compareTo("privacy") != 0) { newUrl = "https://" + bibliogramHost + "/u" + bibliogram_directory; - }else{ + } else { newUrl = "https://" + bibliogramHost + bibliogram_directory; } } diff --git a/app/src/main/java/app/fedilab/nitterizeme/Utils.java b/app/src/main/java/app/fedilab/nitterizeme/Utils.java index b009f90..31c58d5 100644 --- a/app/src/main/java/app/fedilab/nitterizeme/Utils.java +++ b/app/src/main/java/app/fedilab/nitterizeme/Utils.java @@ -14,6 +14,7 @@ package app.fedilab.nitterizeme; * You should have received a copy of the GNU General Public License along with NitterizeMe; if not, * see . */ + import java.io.IOException; import java.net.InetAddress; import java.net.URL; @@ -33,7 +34,32 @@ class Utils { static final Pattern urlPattern = Pattern.compile( "(?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`!()\\[\\]{};:'\".,<>?«»“”‘’]))", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); + private static final String[] UTM_PARAMS = { + "utm_\\w+", + "ga_source", + "ga_medium", + "ga_term", + "ga_content", + "ga_campaign", + "ga_place", + "yclid", + "_openstat", + "fb_action_ids", + "fb_action_types", + "fb_source", + "fb_ref", + "fbclid", + "action_object_map", + "action_type_map", + "action_ref_map", + "gs_l", + "mkt_tok", + "hmb_campaign", + "hmb_medium", + "hmb_source", + "[\\?|&]ref[\\_]?" + }; /** * Returns the unshortened URL @@ -61,8 +87,9 @@ class Utils { if (entry.toString().toLowerCase().startsWith("location")) { Matcher matcher = urlPattern.matcher(entry.toString()); if (matcher.find()) { - urls.add(matcher.group(1)); - newURL = matcher.group(1); + newURL = remove_tracking_param(matcher.group(1)); + urls.add(newURL); + } } } @@ -101,4 +128,24 @@ class Utils { } return timeDifference; } + + /** + * Clean URLs from utm parameters + * + * @param url String URL + * @return cleaned URL String + */ + private static String remove_tracking_param(String url) { + if (url != null) { + for (String utm : UTM_PARAMS) { + url = url.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", ""); + url = url.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", ""); + url = url.replaceAll("\\?" + utm + "=[0-9a-zA-Z._-]*", "?"); + } + } + if (url != null && url.endsWith("?")) { + url = url.substring(0, url.length() - 1); + } + return url; + } } diff --git a/fastlane/metadata/android/en-US/changelogs/10.txt b/fastlane/metadata/android/en-US/changelogs/10.txt new file mode 100644 index 0000000..3d4cfcb --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/10.txt @@ -0,0 +1,6 @@ +Added: +- Unshorten support: ow.ly, bl.ink (Think to allow the app for opening them) +- Remove tracking parameters after unshorteninng URLs + +Fixed: +- Fix transparent background when dismissing \ No newline at end of file