Remove getBilling from app class

This commit is contained in:
emanuele-f 2021-11-22 11:44:55 +01:00
parent 71a8adda30
commit 6700463155
4 changed files with 17 additions and 13 deletions

View File

@ -36,10 +36,14 @@ public class Billing {
protected final Context mContext;
public Billing(Context ctx) {
protected Billing(Context ctx) {
mContext = ctx;
}
public static Billing newInstance(Context ctx) {
return new Billing(ctx);
}
public boolean isAvailable(String sku) {
return false;
}

View File

@ -23,6 +23,7 @@ import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceManager;
import com.emanuelef.remote_capture.activities.ErrorActivity;
@ -35,8 +36,14 @@ import java.lang.ref.WeakReference;
import cat.ereza.customactivityoncrash.config.CaocConfig;
// IMPORTANT: do not override getResources() with mLocalizedContext, otherwise the Webview used for ads will crash!
// https://stackoverflow.com/questions/56496714/android-webview-causing-runtimeexception-at-webviewdelegate-getpackageid
/* The PCAPdroid app class.
* This class is instantiated before anything else, and its reference is stored in the mInstance.
* Global state is stored into this class via singletons. Contrary to static singletons, this does
* not require passing the localized Context to the singletons getters methods.
*
* IMPORTANT: do not override getResources() with mLocalizedContext, otherwise the Webview used for ads will crash!
* https://stackoverflow.com/questions/56496714/android-webview-causing-runtimeexception-at-webviewdelegate-getpackageid
*/
public class PCAPdroid extends Application {
private MatchList mVisMask;
private MatchList mMalwareWhitelist;
@ -71,14 +78,10 @@ public class PCAPdroid extends Application {
Utils.setAppTheme(theme);
}
public static PCAPdroid getInstance() {
public static @NonNull PCAPdroid getInstance() {
return mInstance.get();
}
public Billing getBilling(Context ctx) {
return new Billing(ctx);
}
public MatchList getVisualizationMask() {
if(mVisMask == null)
mVisMask = new MatchList(mLocalizedContext, Prefs.PREF_VISUALIZATION_MASK);

View File

@ -35,9 +35,7 @@ import androidx.preference.PreferenceManager;
import androidx.preference.SwitchPreference;
import com.emanuelef.remote_capture.Billing;
import com.emanuelef.remote_capture.PCAPdroid;
import com.emanuelef.remote_capture.Utils;
import com.emanuelef.remote_capture.model.ListInfo;
import com.emanuelef.remote_capture.model.Prefs;
import com.emanuelef.remote_capture.R;
@ -90,7 +88,7 @@ public class SettingsActivity extends BaseActivity {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
mIab = PCAPdroid.getInstance().getBilling(requireContext());
mIab = Billing.newInstance(requireContext());
setupUdpExporterPrefs();
setupHttpServerPrefs();

View File

@ -23,7 +23,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import com.emanuelef.remote_capture.Billing;
import com.emanuelef.remote_capture.PCAPdroid;
import com.emanuelef.remote_capture.Utils;
public class Prefs {
@ -84,7 +83,7 @@ public class Prefs {
public static boolean isPcapdroidTrailerEnabled(SharedPreferences p) { return(p.getBoolean(PREF_PCAPDROID_TRAILER, false)); }
public static String getCaptureInterface(SharedPreferences p) { return(p.getString(PREF_CAPTURE_INTERFACE, "@inet")); }
public static boolean isMalwareDetectionEnabled(Context ctx, SharedPreferences p) {
return(PCAPdroid.getInstance().getBilling(ctx).isPurchased(Billing.MALWARE_DETECTION_SKU)
return(Billing.newInstance(ctx).isPurchased(Billing.MALWARE_DETECTION_SKU)
&& p.getBoolean(PREF_MALWARE_DETECTION, false));
}
public static boolean startAtBoot(SharedPreferences p) { return(p.getBoolean(PREF_START_AT_BOOT, false)); }