From 4680e81e0ca7fe40ff651594a053e1277b4177e9 Mon Sep 17 00:00:00 2001 From: bjbjorn Date: Sat, 20 May 2023 11:56:09 +0200 Subject: [PATCH] The copy URL button is now a preference that can be toggled on or off in the modules tab. --- .../urlchecker/modules/list/OpenModule.java | 92 +++++-------------- 1 file changed, 22 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java index d4ba849..18fc12e 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java +++ b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java @@ -3,7 +3,6 @@ package com.trianguloy.urlchecker.modules.list; import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; @@ -17,7 +16,10 @@ import com.trianguloy.urlchecker.modules.AModuleConfig; import com.trianguloy.urlchecker.modules.AModuleData; import com.trianguloy.urlchecker.modules.AModuleDialog; import com.trianguloy.urlchecker.modules.companions.CTabs; +import com.trianguloy.urlchecker.modules.companions.Flags; +import com.trianguloy.urlchecker.modules.companions.Incognito; import com.trianguloy.urlchecker.modules.companions.LastOpened; +import com.trianguloy.urlchecker.modules.companions.OnOffConfig; import com.trianguloy.urlchecker.url.UrlData; import com.trianguloy.urlchecker.utilities.AndroidUtils; import com.trianguloy.urlchecker.utilities.GenericPref; @@ -76,9 +78,8 @@ class OpenDialog extends AModuleDialog { private final GenericPref.Bool closeSharePref; private final GenericPref.Bool noReferrerPref; private final GenericPref.Bool mergePref; - - private final GenericPref.Enumeration ctabsPref; - private boolean ctabs = false; + private final CTabs cTabs; + private final Incognito incognito; private List packages; private Button btn_open; @@ -86,16 +87,15 @@ class OpenDialog extends AModuleDialog { private View openParent; private Menu menu; private PopupMenu popup; - private ImageButton btn_ctabs; public OpenDialog(MainDialog dialog) { super(dialog); - ctabsPref = CTabs.PREF(dialog); + cTabs = new CTabs(dialog); + incognito = new Incognito(dialog); closeOpenPref = OpenModule.CLOSEOPEN_PREF(dialog); closeSharePref = OpenModule.CLOSESHARE_PREF(dialog); noReferrerPref = OpenModule.NOREFERRER_PREF(dialog); mergePref = OpenModule.MERGEBUTTON_PREF(dialog); - } @Override @@ -107,38 +107,11 @@ class OpenDialog extends AModuleDialog { public void onInitialize(View views) { Intent intent = getActivity().getIntent(); - // init ctabs - btn_ctabs = views.findViewById(R.id.ctabs); - if (CTabs.isAvailable()) { - btn_ctabs.setOnClickListener(v -> toggleCtabs()); - AndroidUtils.longTapForDescription(btn_ctabs); - switch (ctabsPref.get()) { - case AUTO: - default: - // If auto we get it from the intent - setCtabs(intent.hasExtra(CTabs.EXTRA)); - break; - case ON: - setCtabs(true); - break; - case OFF: - setCtabs(false); - break; - case ENABLED: - // enable but hide - setCtabs(true); - btn_ctabs.setVisibility(View.GONE); - break; - case DISABLED: - // disable but hide - setCtabs(false); - btn_ctabs.setVisibility(View.GONE); - break; - } - } else { - // not available, just ignore - btn_ctabs.setVisibility(View.GONE); - } + // ctabs + cTabs.initFrom(intent, views.findViewById(R.id.ctabs)); + + // incognito + incognito.initFrom(intent, views.findViewById(R.id.mode_incognito)); // init open openParent = views.findViewById(R.id.open_parent); @@ -249,23 +222,14 @@ class OpenDialog extends AModuleDialog { intent = UrlUtils.getViewIntent(getUrl(), chosen); } - if (ctabs && !intent.hasExtra(CTabs.EXTRA)) { - // enable Custom tabs + // ctabs + cTabs.apply(intent); - if (CTabs.isAvailable()) { - Bundle extras = new Bundle(); - extras.putBinder(CTabs.EXTRA, null); // Set to null for no session - intent.putExtras(extras); - } - } - - if (!ctabs && intent.hasExtra(CTabs.EXTRA)) { - // disable ctabs - intent.removeExtra(CTabs.EXTRA); - } + // incognito + incognito.apply(intent); // Get flags from global data (probably set by flags module, if active) - Integer flags = FlagsDialog.getFlagsNullable(this); + Integer flags = Flags.getGlobalFlagsNullable(this); if (flags != null) { intent.setFlags(flags); } @@ -305,21 +269,6 @@ class OpenDialog extends AModuleDialog { } } - /** - * Toggle the custom tabs state - */ - private void toggleCtabs() { - setCtabs(!ctabs); - } - - /** - * Sets the custom tabs state - */ - private void setCtabs(boolean state) { - btn_ctabs.setImageResource(state ? R.drawable.ctabs_on : R.drawable.ctabs_off); - ctabs = state; - } - } class OpenConfig extends AModuleConfig { @@ -328,13 +277,15 @@ class OpenConfig extends AModuleConfig { private final GenericPref.Bool closeSharePref; private final GenericPref.Bool noReferrerPref; private final GenericPref.Bool mergePref; - private final GenericPref.Enumeration ctabsPref; + private final GenericPref.Enumeration ctabsPref; + private final GenericPref.Enumeration incognitoPref; private final GenericPref.Bool perDomainPref; public OpenConfig(ModulesActivity activity) { super(activity); ctabsPref = CTabs.PREF(activity); + incognitoPref = Incognito.PREF(activity); closeOpenPref = OpenModule.CLOSEOPEN_PREF(activity); closeSharePref = OpenModule.CLOSESHARE_PREF(activity); noReferrerPref = OpenModule.NOREFERRER_PREF(activity); @@ -355,11 +306,12 @@ class OpenConfig extends AModuleConfig { } else { views.findViewById(R.id.ctabs_parent).setVisibility(View.GONE); } + incognitoPref.attachToSpinner(views.findViewById(R.id.incognito_pref), null); closeOpenPref.attachToSwitch(views.findViewById(R.id.closeopen_pref)); closeSharePref.attachToSwitch(views.findViewById(R.id.closeshare_pref)); noReferrerPref.attachToSwitch(views.findViewById(R.id.noReferrer)); perDomainPref.attachToSwitch(views.findViewById(R.id.perDomain)); - mergePref.attachToSwitch(views.findViewById((R.id.mergeButtons_pref))); + mergePref.attachToSwitch(views.findViewById(R.id.mergeButtons_pref)); } }