0
0
mirror of https://github.com/TrianguloY/UrlChecker.git synced 2024-09-19 20:02:16 +02:00

The copy URL button is now a preference that can be toggled on or off in the modules tab.

This commit is contained in:
bjbjorn 2023-05-20 11:56:09 +02:00
parent 2a3937dde5
commit 4680e81e0c

View File

@ -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<CTabs.Config> ctabsPref;
private boolean ctabs = false;
private final CTabs cTabs;
private final Incognito incognito;
private List<String> 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<CTabs.Config> ctabsPref;
private final GenericPref.Enumeration<OnOffConfig> ctabsPref;
private final GenericPref.Enumeration<OnOffConfig> 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));
}
}