diff --git a/app/build.gradle b/app/build.gradle index 804ea9f..6abf3b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.1.0' - implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.preference:preference-ktx:1.1.1' compileOnly 'de.robv.android.xposed:api:82' compileOnly 'de.robv.android.xposed:api:82:sources' testImplementation 'junit:junit:4.+' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c45422e..a5a2550 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,9 +25,13 @@ + + android:value="93" /> + - \ No newline at end of file + diff --git a/app/src/main/java/com/acme/twitteradeater/SettingsActivity.kt b/app/src/main/java/com/acme/twitteradeater/SettingsActivity.kt index f91bbd9..9734244 100644 --- a/app/src/main/java/com/acme/twitteradeater/SettingsActivity.kt +++ b/app/src/main/java/com/acme/twitteradeater/SettingsActivity.kt @@ -11,9 +11,9 @@ class SettingsActivity : AppCompatActivity() { setContentView(R.layout.settings_activity) if (savedInstanceState == null) { supportFragmentManager - .beginTransaction() - .replace(R.id.settings, SettingsFragment()) - .commit() + .beginTransaction() + .replace(R.id.settings, SettingsFragment()) + .commit() } supportActionBar?.setDisplayHomeAsUpEnabled(true) } @@ -23,4 +23,4 @@ class SettingsActivity : AppCompatActivity() { setPreferencesFromResource(R.xml.root_preferences, rootKey) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/acme/twitteradeater/TwitterAdEaterModule.kt b/app/src/main/java/com/acme/twitteradeater/TwitterAdEaterModule.kt index cfbcbd7..6657863 100644 --- a/app/src/main/java/com/acme/twitteradeater/TwitterAdEaterModule.kt +++ b/app/src/main/java/com/acme/twitteradeater/TwitterAdEaterModule.kt @@ -2,21 +2,25 @@ package com.acme.twitteradeater import android.view.View import android.view.ViewGroup -import android.view.ViewStub import androidx.core.view.children -import de.robv.android.xposed.IXposedHookLoadPackage -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedBridge -import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.* import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam + class TwitterAdEaterModule : IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: LoadPackageParam?) { log("NOM NOM NOM %s", lpparam!!.packageName) + if (lpparam.packageName == "com.acme.twitteradeater") { + Utils.readPrefs() + logcat("prefs = %s", Utils.prefs.all) + } + if (lpparam.packageName == "com.twitter.android") { - log("Twitter app loaded... (package = %s)", lpparam.packageName) + Utils.readPrefs() + logcat("prefs = %s", Utils.prefs.all) + log("Twitter app loaded, initializing hooks...") initHooks(lpparam) } } @@ -51,8 +55,10 @@ class TwitterAdEaterModule : IXposedHookLoadPackage { { if (isPromoted(v)) { v.visibility = View.GONE - logcat("Removing ad: view = %s", v) - logView(v.parent as View) + if (debugLogsEnabled()) { + logcat("Removing ad: view = %s", v) + logView(v.parent as View) + } } else { v.visibility = View.VISIBLE } diff --git a/app/src/main/java/com/acme/twitteradeater/Utils.kt b/app/src/main/java/com/acme/twitteradeater/Utils.kt index 2840fbb..a289b01 100644 --- a/app/src/main/java/com/acme/twitteradeater/Utils.kt +++ b/app/src/main/java/com/acme/twitteradeater/Utils.kt @@ -4,10 +4,28 @@ import android.util.Log import android.view.View import android.view.ViewGroup import androidx.core.view.children +import de.robv.android.xposed.XSharedPreferences import de.robv.android.xposed.XposedBridge private const val TAG: String = "TwitterAdEater" +class Utils { + companion object { + lateinit var prefs: XSharedPreferences + + fun readPrefs() { + prefs = XSharedPreferences(BuildConfig.APPLICATION_ID) + prefs.makeWorldReadable() + prefs.reload() + } + } +} + +fun debugLogsEnabled(): Boolean { + return Utils.prefs.getBoolean("debugLogs", false) +} + + fun log(message: String, vararg va: Any?) { XposedBridge.log(String.format(message, *va)) } diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 8efc924..63fb689 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -15,21 +15,21 @@ app:title="@string/reply_title" app:useSimpleSummaryProvider="true" /> - + - + + app:key="debugLogs" + app:title="Debug logs" /> - + app:title="@string/attachment_title" /--> - + \ No newline at end of file