Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

Commit

Permalink
* Bumped minimum Exposed API version to 93 to solve issues with modul…
Browse files Browse the repository at this point in the history
…e preferences.

* Added preference for debug logs.
  • Loading branch information
ppawel committed Apr 2, 2021
1 parent 27b25c3 commit bd47d6b
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 22 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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.+'
Expand Down
8 changes: 6 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,13 @@
<meta-data
android:name="xposeddescription"
android:value="Twitter Ads... nom nom nom..." />
<meta-data
android:name="xposedsharedprefs"
android:value="true" />
<meta-data
android:name="xposedminversion"
android:value="82" />
android:value="93" />

</application>

</manifest>
</manifest>
8 changes: 4 additions & 4 deletions app/src/main/java/com/acme/twitteradeater/SettingsActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand All @@ -23,4 +23,4 @@ class SettingsActivity : AppCompatActivity() {
setPreferencesFromResource(R.xml.root_preferences, rootKey)
}
}
}
}
22 changes: 14 additions & 8 deletions app/src/main/java/com/acme/twitteradeater/TwitterAdEaterModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
Expand Down Expand Up @@ -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
}
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/java/com/acme/twitteradeater/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
Expand Down
14 changes: 7 additions & 7 deletions app/src/main/res/xml/root_preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@
app:title="@string/reply_title"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
</PreferenceCategory-->

<PreferenceCategory app:title="@string/sync_header">
<PreferenceCategory>

<SwitchPreferenceCompat
app:key="sync"
app:title="@string/sync_title" />
app:key="debugLogs"
app:title="Debug logs" />

<SwitchPreferenceCompat
<!--SwitchPreferenceCompat
app:dependency="sync"
app:key="attachment"
app:summaryOff="@string/attachment_summary_off"
app:summaryOn="@string/attachment_summary_on"
app:title="@string/attachment_title" />
app:title="@string/attachment_title" /-->

</PreferenceCategory-->
</PreferenceCategory>

</PreferenceScreen>

0 comments on commit bd47d6b

Please # to comment.