Compare commits

...

2 Commits

Author SHA1 Message Date
Your Name
bbfe32da05 wip 2024-03-03 23:05:09 -06:00
Your Name
90b66d646b gi 2024-03-03 23:03:20 -06:00
3132 changed files with 113292 additions and 5 deletions

2
.gitignore vendored
View File

@@ -3,7 +3,5 @@
/local.properties
/.idea
.DS_Store
/build
/captures
.externalNativeBuild
release/vpnhotspotmod.apk

1
mobile/.gitignore vendored
View File

@@ -1,3 +1,2 @@
/build
/debug
release/

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<!--
This file is automatically generated by Crashlytics to uniquely
identify the mapping file for your Android application.
Do NOT modify or commit to source control!
-->
<string name="com.google.firebase.crashlytics.mapping_file_id" tools:ignore="UnusedResources,TypographyDashes" translatable="false">00000000000000000000000000000000</string>
</resources>

View File

@@ -0,0 +1,92 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentContainerView;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class ActivityMainBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final FragmentContainerView fragmentHolder;
@NonNull
public final BottomNavigationView navigation;
@NonNull
public final MaterialToolbar toolbar;
private ActivityMainBinding(@NonNull LinearLayout rootView,
@NonNull FragmentContainerView fragmentHolder, @NonNull BottomNavigationView navigation,
@NonNull MaterialToolbar toolbar) {
this.rootView = rootView;
this.fragmentHolder = fragmentHolder;
this.navigation = navigation;
this.toolbar = toolbar;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityMainBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityMainBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_main, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityMainBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.fragmentHolder;
FragmentContainerView fragmentHolder = ViewBindings.findChildViewById(rootView, id);
if (fragmentHolder == null) {
break missingId;
}
id = R.id.navigation;
BottomNavigationView navigation = ViewBindings.findChildViewById(rootView, id);
if (navigation == null) {
break missingId;
}
id = R.id.toolbar;
MaterialToolbar toolbar = ViewBindings.findChildViewById(rootView, id);
if (toolbar == null) {
break missingId;
}
return new ActivityMainBinding((LinearLayout) rootView, fragmentHolder, navigation, toolbar);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,566 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.materialswitch.MaterialSwitch;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class DialogWifiApBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final LinearLayout accessControlGroup;
@NonNull
public final TextInputEditText acs2g;
@NonNull
public final TextInputLayout acs2gWrapper;
@NonNull
public final TextInputEditText acs5g;
@NonNull
public final TextInputLayout acs5gWrapper;
@NonNull
public final TextInputEditText acs6g;
@NonNull
public final TextInputLayout acs6gWrapper;
@NonNull
public final LinearLayout advancedApGroup;
@NonNull
public final TextInputEditText allowedList;
@NonNull
public final TextInputLayout allowedListWrapper;
@NonNull
public final MaterialSwitch autoShutdown;
@NonNull
public final TextView bandError;
@NonNull
public final LinearLayout bandGroup;
@NonNull
public final Spinner bandPrimary;
@NonNull
public final Spinner bandSecondary;
@NonNull
public final TextInputEditText blockedList;
@NonNull
public final TextInputLayout blockedListWrapper;
@NonNull
public final MaterialSwitch bridgedModeOpportunisticShutdown;
@NonNull
public final TextInputEditText bridgedTimeout;
@NonNull
public final TextInputLayout bridgedTimeoutWrapper;
@NonNull
public final TextInputEditText bssid;
@NonNull
public final TextInputLayout bssidWrapper;
@NonNull
public final MaterialSwitch clientUserControl;
@NonNull
public final MaterialSwitch hiddenSsid;
@NonNull
public final MaterialSwitch ieee80211ax;
@NonNull
public final MaterialSwitch ieee80211be;
@NonNull
public final Spinner macRandomization;
@NonNull
public final LinearLayout macRandomizationWrapper;
@NonNull
public final Spinner maxChannelBandwidth;
@NonNull
public final TextView maxChannelBandwidthError;
@NonNull
public final LinearLayout maxChannelBandwidthWrapper;
@NonNull
public final TextInputEditText maxClient;
@NonNull
public final TextInputLayout maxClientWrapper;
@NonNull
public final TextInputEditText password;
@NonNull
public final TextInputLayout passwordWrapper;
@NonNull
public final TextInputEditText persistentRandomizedMac;
@NonNull
public final TextInputLayout persistentRandomizedMacWrapper;
@NonNull
public final Spinner security;
@NonNull
public final LinearLayout securityWrapper;
@NonNull
public final TextInputEditText ssid;
@NonNull
public final TextInputLayout ssidWrapper;
@NonNull
public final TextInputEditText timeout;
@NonNull
public final TextInputLayout timeoutWrapper;
@NonNull
public final MaterialToolbar toolbar;
@NonNull
public final MaterialSwitch userConfig;
@NonNull
public final TextInputEditText vendorElements;
@NonNull
public final TextInputLayout vendorElementsWrapper;
private DialogWifiApBinding(@NonNull LinearLayout rootView,
@NonNull LinearLayout accessControlGroup, @NonNull TextInputEditText acs2g,
@NonNull TextInputLayout acs2gWrapper, @NonNull TextInputEditText acs5g,
@NonNull TextInputLayout acs5gWrapper, @NonNull TextInputEditText acs6g,
@NonNull TextInputLayout acs6gWrapper, @NonNull LinearLayout advancedApGroup,
@NonNull TextInputEditText allowedList, @NonNull TextInputLayout allowedListWrapper,
@NonNull MaterialSwitch autoShutdown, @NonNull TextView bandError,
@NonNull LinearLayout bandGroup, @NonNull Spinner bandPrimary, @NonNull Spinner bandSecondary,
@NonNull TextInputEditText blockedList, @NonNull TextInputLayout blockedListWrapper,
@NonNull MaterialSwitch bridgedModeOpportunisticShutdown,
@NonNull TextInputEditText bridgedTimeout, @NonNull TextInputLayout bridgedTimeoutWrapper,
@NonNull TextInputEditText bssid, @NonNull TextInputLayout bssidWrapper,
@NonNull MaterialSwitch clientUserControl, @NonNull MaterialSwitch hiddenSsid,
@NonNull MaterialSwitch ieee80211ax, @NonNull MaterialSwitch ieee80211be,
@NonNull Spinner macRandomization, @NonNull LinearLayout macRandomizationWrapper,
@NonNull Spinner maxChannelBandwidth, @NonNull TextView maxChannelBandwidthError,
@NonNull LinearLayout maxChannelBandwidthWrapper, @NonNull TextInputEditText maxClient,
@NonNull TextInputLayout maxClientWrapper, @NonNull TextInputEditText password,
@NonNull TextInputLayout passwordWrapper, @NonNull TextInputEditText persistentRandomizedMac,
@NonNull TextInputLayout persistentRandomizedMacWrapper, @NonNull Spinner security,
@NonNull LinearLayout securityWrapper, @NonNull TextInputEditText ssid,
@NonNull TextInputLayout ssidWrapper, @NonNull TextInputEditText timeout,
@NonNull TextInputLayout timeoutWrapper, @NonNull MaterialToolbar toolbar,
@NonNull MaterialSwitch userConfig, @NonNull TextInputEditText vendorElements,
@NonNull TextInputLayout vendorElementsWrapper) {
this.rootView = rootView;
this.accessControlGroup = accessControlGroup;
this.acs2g = acs2g;
this.acs2gWrapper = acs2gWrapper;
this.acs5g = acs5g;
this.acs5gWrapper = acs5gWrapper;
this.acs6g = acs6g;
this.acs6gWrapper = acs6gWrapper;
this.advancedApGroup = advancedApGroup;
this.allowedList = allowedList;
this.allowedListWrapper = allowedListWrapper;
this.autoShutdown = autoShutdown;
this.bandError = bandError;
this.bandGroup = bandGroup;
this.bandPrimary = bandPrimary;
this.bandSecondary = bandSecondary;
this.blockedList = blockedList;
this.blockedListWrapper = blockedListWrapper;
this.bridgedModeOpportunisticShutdown = bridgedModeOpportunisticShutdown;
this.bridgedTimeout = bridgedTimeout;
this.bridgedTimeoutWrapper = bridgedTimeoutWrapper;
this.bssid = bssid;
this.bssidWrapper = bssidWrapper;
this.clientUserControl = clientUserControl;
this.hiddenSsid = hiddenSsid;
this.ieee80211ax = ieee80211ax;
this.ieee80211be = ieee80211be;
this.macRandomization = macRandomization;
this.macRandomizationWrapper = macRandomizationWrapper;
this.maxChannelBandwidth = maxChannelBandwidth;
this.maxChannelBandwidthError = maxChannelBandwidthError;
this.maxChannelBandwidthWrapper = maxChannelBandwidthWrapper;
this.maxClient = maxClient;
this.maxClientWrapper = maxClientWrapper;
this.password = password;
this.passwordWrapper = passwordWrapper;
this.persistentRandomizedMac = persistentRandomizedMac;
this.persistentRandomizedMacWrapper = persistentRandomizedMacWrapper;
this.security = security;
this.securityWrapper = securityWrapper;
this.ssid = ssid;
this.ssidWrapper = ssidWrapper;
this.timeout = timeout;
this.timeoutWrapper = timeoutWrapper;
this.toolbar = toolbar;
this.userConfig = userConfig;
this.vendorElements = vendorElements;
this.vendorElementsWrapper = vendorElementsWrapper;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DialogWifiApBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogWifiApBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_wifi_ap, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogWifiApBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.access_control_group;
LinearLayout accessControlGroup = ViewBindings.findChildViewById(rootView, id);
if (accessControlGroup == null) {
break missingId;
}
id = R.id.acs_2g;
TextInputEditText acs2g = ViewBindings.findChildViewById(rootView, id);
if (acs2g == null) {
break missingId;
}
id = R.id.acs_2g_wrapper;
TextInputLayout acs2gWrapper = ViewBindings.findChildViewById(rootView, id);
if (acs2gWrapper == null) {
break missingId;
}
id = R.id.acs_5g;
TextInputEditText acs5g = ViewBindings.findChildViewById(rootView, id);
if (acs5g == null) {
break missingId;
}
id = R.id.acs_5g_wrapper;
TextInputLayout acs5gWrapper = ViewBindings.findChildViewById(rootView, id);
if (acs5gWrapper == null) {
break missingId;
}
id = R.id.acs_6g;
TextInputEditText acs6g = ViewBindings.findChildViewById(rootView, id);
if (acs6g == null) {
break missingId;
}
id = R.id.acs_6g_wrapper;
TextInputLayout acs6gWrapper = ViewBindings.findChildViewById(rootView, id);
if (acs6gWrapper == null) {
break missingId;
}
id = R.id.advanced_ap_group;
LinearLayout advancedApGroup = ViewBindings.findChildViewById(rootView, id);
if (advancedApGroup == null) {
break missingId;
}
id = R.id.allowed_list;
TextInputEditText allowedList = ViewBindings.findChildViewById(rootView, id);
if (allowedList == null) {
break missingId;
}
id = R.id.allowed_list_wrapper;
TextInputLayout allowedListWrapper = ViewBindings.findChildViewById(rootView, id);
if (allowedListWrapper == null) {
break missingId;
}
id = R.id.auto_shutdown;
MaterialSwitch autoShutdown = ViewBindings.findChildViewById(rootView, id);
if (autoShutdown == null) {
break missingId;
}
id = R.id.band_error;
TextView bandError = ViewBindings.findChildViewById(rootView, id);
if (bandError == null) {
break missingId;
}
id = R.id.band_group;
LinearLayout bandGroup = ViewBindings.findChildViewById(rootView, id);
if (bandGroup == null) {
break missingId;
}
id = R.id.band_primary;
Spinner bandPrimary = ViewBindings.findChildViewById(rootView, id);
if (bandPrimary == null) {
break missingId;
}
id = R.id.band_secondary;
Spinner bandSecondary = ViewBindings.findChildViewById(rootView, id);
if (bandSecondary == null) {
break missingId;
}
id = R.id.blocked_list;
TextInputEditText blockedList = ViewBindings.findChildViewById(rootView, id);
if (blockedList == null) {
break missingId;
}
id = R.id.blocked_list_wrapper;
TextInputLayout blockedListWrapper = ViewBindings.findChildViewById(rootView, id);
if (blockedListWrapper == null) {
break missingId;
}
id = R.id.bridged_mode_opportunistic_shutdown;
MaterialSwitch bridgedModeOpportunisticShutdown = ViewBindings.findChildViewById(rootView, id);
if (bridgedModeOpportunisticShutdown == null) {
break missingId;
}
id = R.id.bridged_timeout;
TextInputEditText bridgedTimeout = ViewBindings.findChildViewById(rootView, id);
if (bridgedTimeout == null) {
break missingId;
}
id = R.id.bridged_timeout_wrapper;
TextInputLayout bridgedTimeoutWrapper = ViewBindings.findChildViewById(rootView, id);
if (bridgedTimeoutWrapper == null) {
break missingId;
}
id = R.id.bssid;
TextInputEditText bssid = ViewBindings.findChildViewById(rootView, id);
if (bssid == null) {
break missingId;
}
id = R.id.bssid_wrapper;
TextInputLayout bssidWrapper = ViewBindings.findChildViewById(rootView, id);
if (bssidWrapper == null) {
break missingId;
}
id = R.id.client_user_control;
MaterialSwitch clientUserControl = ViewBindings.findChildViewById(rootView, id);
if (clientUserControl == null) {
break missingId;
}
id = R.id.hidden_ssid;
MaterialSwitch hiddenSsid = ViewBindings.findChildViewById(rootView, id);
if (hiddenSsid == null) {
break missingId;
}
id = R.id.ieee_80211ax;
MaterialSwitch ieee80211ax = ViewBindings.findChildViewById(rootView, id);
if (ieee80211ax == null) {
break missingId;
}
id = R.id.ieee_80211be;
MaterialSwitch ieee80211be = ViewBindings.findChildViewById(rootView, id);
if (ieee80211be == null) {
break missingId;
}
id = R.id.mac_randomization;
Spinner macRandomization = ViewBindings.findChildViewById(rootView, id);
if (macRandomization == null) {
break missingId;
}
id = R.id.mac_randomization_wrapper;
LinearLayout macRandomizationWrapper = ViewBindings.findChildViewById(rootView, id);
if (macRandomizationWrapper == null) {
break missingId;
}
id = R.id.max_channel_bandwidth;
Spinner maxChannelBandwidth = ViewBindings.findChildViewById(rootView, id);
if (maxChannelBandwidth == null) {
break missingId;
}
id = R.id.max_channel_bandwidth_error;
TextView maxChannelBandwidthError = ViewBindings.findChildViewById(rootView, id);
if (maxChannelBandwidthError == null) {
break missingId;
}
id = R.id.max_channel_bandwidth_wrapper;
LinearLayout maxChannelBandwidthWrapper = ViewBindings.findChildViewById(rootView, id);
if (maxChannelBandwidthWrapper == null) {
break missingId;
}
id = R.id.max_client;
TextInputEditText maxClient = ViewBindings.findChildViewById(rootView, id);
if (maxClient == null) {
break missingId;
}
id = R.id.max_client_wrapper;
TextInputLayout maxClientWrapper = ViewBindings.findChildViewById(rootView, id);
if (maxClientWrapper == null) {
break missingId;
}
id = R.id.password;
TextInputEditText password = ViewBindings.findChildViewById(rootView, id);
if (password == null) {
break missingId;
}
id = R.id.password_wrapper;
TextInputLayout passwordWrapper = ViewBindings.findChildViewById(rootView, id);
if (passwordWrapper == null) {
break missingId;
}
id = R.id.persistent_randomized_mac;
TextInputEditText persistentRandomizedMac = ViewBindings.findChildViewById(rootView, id);
if (persistentRandomizedMac == null) {
break missingId;
}
id = R.id.persistent_randomized_mac_wrapper;
TextInputLayout persistentRandomizedMacWrapper = ViewBindings.findChildViewById(rootView, id);
if (persistentRandomizedMacWrapper == null) {
break missingId;
}
id = R.id.security;
Spinner security = ViewBindings.findChildViewById(rootView, id);
if (security == null) {
break missingId;
}
id = R.id.security_wrapper;
LinearLayout securityWrapper = ViewBindings.findChildViewById(rootView, id);
if (securityWrapper == null) {
break missingId;
}
id = R.id.ssid;
TextInputEditText ssid = ViewBindings.findChildViewById(rootView, id);
if (ssid == null) {
break missingId;
}
id = R.id.ssid_wrapper;
TextInputLayout ssidWrapper = ViewBindings.findChildViewById(rootView, id);
if (ssidWrapper == null) {
break missingId;
}
id = R.id.timeout;
TextInputEditText timeout = ViewBindings.findChildViewById(rootView, id);
if (timeout == null) {
break missingId;
}
id = R.id.timeout_wrapper;
TextInputLayout timeoutWrapper = ViewBindings.findChildViewById(rootView, id);
if (timeoutWrapper == null) {
break missingId;
}
id = R.id.toolbar;
MaterialToolbar toolbar = ViewBindings.findChildViewById(rootView, id);
if (toolbar == null) {
break missingId;
}
id = R.id.user_config;
MaterialSwitch userConfig = ViewBindings.findChildViewById(rootView, id);
if (userConfig == null) {
break missingId;
}
id = R.id.vendor_elements;
TextInputEditText vendorElements = ViewBindings.findChildViewById(rootView, id);
if (vendorElements == null) {
break missingId;
}
id = R.id.vendor_elements_wrapper;
TextInputLayout vendorElementsWrapper = ViewBindings.findChildViewById(rootView, id);
if (vendorElementsWrapper == null) {
break missingId;
}
return new DialogWifiApBinding((LinearLayout) rootView, accessControlGroup, acs2g,
acs2gWrapper, acs5g, acs5gWrapper, acs6g, acs6gWrapper, advancedApGroup, allowedList,
allowedListWrapper, autoShutdown, bandError, bandGroup, bandPrimary, bandSecondary,
blockedList, blockedListWrapper, bridgedModeOpportunisticShutdown, bridgedTimeout,
bridgedTimeoutWrapper, bssid, bssidWrapper, clientUserControl, hiddenSsid, ieee80211ax,
ieee80211be, macRandomization, macRandomizationWrapper, maxChannelBandwidth,
maxChannelBandwidthError, maxChannelBandwidthWrapper, maxClient, maxClientWrapper,
password, passwordWrapper, persistentRandomizedMac, persistentRandomizedMacWrapper,
security, securityWrapper, ssid, ssidWrapper, timeout, timeoutWrapper, toolbar,
userConfig, vendorElements, vendorElementsWrapper);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,75 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class FragmentClientsBinding implements ViewBinding {
@NonNull
private final SwipeRefreshLayout rootView;
@NonNull
public final RecyclerView clients;
@NonNull
public final SwipeRefreshLayout swipeRefresher;
private FragmentClientsBinding(@NonNull SwipeRefreshLayout rootView,
@NonNull RecyclerView clients, @NonNull SwipeRefreshLayout swipeRefresher) {
this.rootView = rootView;
this.clients = clients;
this.swipeRefresher = swipeRefresher;
}
@Override
@NonNull
public SwipeRefreshLayout getRoot() {
return rootView;
}
@NonNull
public static FragmentClientsBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static FragmentClientsBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.fragment_clients, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static FragmentClientsBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.clients;
RecyclerView clients = ViewBindings.findChildViewById(rootView, id);
if (clients == null) {
break missingId;
}
SwipeRefreshLayout swipeRefresher = (SwipeRefreshLayout) rootView;
return new FragmentClientsBinding((SwipeRefreshLayout) rootView, clients, swipeRefresher);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,105 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Spinner;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class FragmentEbegBinding implements ViewBinding {
@NonNull
private final ScrollView rootView;
@NonNull
public final LinearLayout donationsGoogle;
@NonNull
public final Button donationsGoogleAndroidMarketDonateButton;
@NonNull
public final Spinner donationsGoogleAndroidMarketSpinner;
@NonNull
public final Button donationsMoreDonateButton;
private FragmentEbegBinding(@NonNull ScrollView rootView, @NonNull LinearLayout donationsGoogle,
@NonNull Button donationsGoogleAndroidMarketDonateButton,
@NonNull Spinner donationsGoogleAndroidMarketSpinner,
@NonNull Button donationsMoreDonateButton) {
this.rootView = rootView;
this.donationsGoogle = donationsGoogle;
this.donationsGoogleAndroidMarketDonateButton = donationsGoogleAndroidMarketDonateButton;
this.donationsGoogleAndroidMarketSpinner = donationsGoogleAndroidMarketSpinner;
this.donationsMoreDonateButton = donationsMoreDonateButton;
}
@Override
@NonNull
public ScrollView getRoot() {
return rootView;
}
@NonNull
public static FragmentEbegBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static FragmentEbegBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.fragment_ebeg, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static FragmentEbegBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.donations__google;
LinearLayout donationsGoogle = ViewBindings.findChildViewById(rootView, id);
if (donationsGoogle == null) {
break missingId;
}
id = R.id.donations__google_android_market_donate_button;
Button donationsGoogleAndroidMarketDonateButton = ViewBindings.findChildViewById(rootView, id);
if (donationsGoogleAndroidMarketDonateButton == null) {
break missingId;
}
id = R.id.donations__google_android_market_spinner;
Spinner donationsGoogleAndroidMarketSpinner = ViewBindings.findChildViewById(rootView, id);
if (donationsGoogleAndroidMarketSpinner == null) {
break missingId;
}
id = R.id.donations__more_donate_button;
Button donationsMoreDonateButton = ViewBindings.findChildViewById(rootView, id);
if (donationsMoreDonateButton == null) {
break missingId;
}
return new FragmentEbegBinding((ScrollView) rootView, donationsGoogle,
donationsGoogleAndroidMarketDonateButton, donationsGoogleAndroidMarketSpinner,
donationsMoreDonateButton);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,59 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
public final class FragmentTetheringBinding implements ViewBinding {
@NonNull
private final RecyclerView rootView;
@NonNull
public final RecyclerView interfaces;
private FragmentTetheringBinding(@NonNull RecyclerView rootView,
@NonNull RecyclerView interfaces) {
this.rootView = rootView;
this.interfaces = interfaces;
}
@Override
@NonNull
public RecyclerView getRoot() {
return rootView;
}
@NonNull
public static FragmentTetheringBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static FragmentTetheringBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.fragment_tethering, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static FragmentTetheringBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
RecyclerView interfaces = (RecyclerView) rootView;
return new FragmentTetheringBinding((RecyclerView) rootView, interfaces);
}
}

View File

@@ -0,0 +1,103 @@
// Generated by data binding compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.Bindable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.client.Client;
import hanson.xyz.vpnhotspotmod.client.ClientsFragment;
import hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView;
import java.lang.Deprecated;
import java.lang.Object;
public abstract class ListitemClientBinding extends ViewDataBinding {
@NonNull
public final AutoCollapseTextView description;
@Bindable
protected Client mClient;
@Bindable
protected ClientsFragment.TrafficRate mRate;
protected ListitemClientBinding(Object _bindingComponent, View _root, int _localFieldCount,
AutoCollapseTextView description) {
super(_bindingComponent, _root, _localFieldCount);
this.description = description;
}
public abstract void setClient(@Nullable Client client);
@Nullable
public Client getClient() {
return mClient;
}
public abstract void setRate(@Nullable ClientsFragment.TrafficRate rate);
@Nullable
public ClientsFragment.TrafficRate getRate() {
return mRate;
}
@NonNull
public static ListitemClientBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot) {
return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_client, root, attachToRoot, component)
*/
@NonNull
@Deprecated
public static ListitemClientBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot, @Nullable Object component) {
return ViewDataBinding.<ListitemClientBinding>inflateInternal(inflater, R.layout.listitem_client, root, attachToRoot, component);
}
@NonNull
public static ListitemClientBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_client, null, false, component)
*/
@NonNull
@Deprecated
public static ListitemClientBinding inflate(@NonNull LayoutInflater inflater,
@Nullable Object component) {
return ViewDataBinding.<ListitemClientBinding>inflateInternal(inflater, R.layout.listitem_client, null, false, component);
}
public static ListitemClientBinding bind(@NonNull View view) {
return bind(view, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.bind(view, component)
*/
@Deprecated
public static ListitemClientBinding bind(@NonNull View view, @Nullable Object component) {
return (ListitemClientBinding)bind(component, view, R.layout.listitem_client);
}
}

View File

@@ -0,0 +1,92 @@
// Generated by data binding compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.Bindable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.manage.Data;
import hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView;
import java.lang.Deprecated;
import java.lang.Object;
public abstract class ListitemInterfaceBinding extends ViewDataBinding {
@NonNull
public final AutoCollapseTextView text;
@Bindable
protected Data mData;
protected ListitemInterfaceBinding(Object _bindingComponent, View _root, int _localFieldCount,
AutoCollapseTextView text) {
super(_bindingComponent, _root, _localFieldCount);
this.text = text;
}
public abstract void setData(@Nullable Data data);
@Nullable
public Data getData() {
return mData;
}
@NonNull
public static ListitemInterfaceBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot) {
return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_interface, root, attachToRoot, component)
*/
@NonNull
@Deprecated
public static ListitemInterfaceBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot, @Nullable Object component) {
return ViewDataBinding.<ListitemInterfaceBinding>inflateInternal(inflater, R.layout.listitem_interface, root, attachToRoot, component);
}
@NonNull
public static ListitemInterfaceBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_interface, null, false, component)
*/
@NonNull
@Deprecated
public static ListitemInterfaceBinding inflate(@NonNull LayoutInflater inflater,
@Nullable Object component) {
return ViewDataBinding.<ListitemInterfaceBinding>inflateInternal(inflater, R.layout.listitem_interface, null, false, component);
}
public static ListitemInterfaceBinding bind(@NonNull View view) {
return bind(view, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.bind(view, component)
*/
@Deprecated
public static ListitemInterfaceBinding bind(@NonNull View view, @Nullable Object component) {
return (ListitemInterfaceBinding)bind(component, view, R.layout.listitem_interface);
}
}

View File

@@ -0,0 +1,92 @@
// Generated by data binding compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.Bindable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.manage.ManageBar;
import java.lang.Deprecated;
import java.lang.Object;
public abstract class ListitemManageBinding extends ViewDataBinding {
@NonNull
public final TextView offloadEnabled;
@Bindable
protected ManageBar.Data mData;
protected ListitemManageBinding(Object _bindingComponent, View _root, int _localFieldCount,
TextView offloadEnabled) {
super(_bindingComponent, _root, _localFieldCount);
this.offloadEnabled = offloadEnabled;
}
public abstract void setData(@Nullable ManageBar.Data data);
@Nullable
public ManageBar.Data getData() {
return mData;
}
@NonNull
public static ListitemManageBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot) {
return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_manage, root, attachToRoot, component)
*/
@NonNull
@Deprecated
public static ListitemManageBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot, @Nullable Object component) {
return ViewDataBinding.<ListitemManageBinding>inflateInternal(inflater, R.layout.listitem_manage, root, attachToRoot, component);
}
@NonNull
public static ListitemManageBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_manage, null, false, component)
*/
@NonNull
@Deprecated
public static ListitemManageBinding inflate(@NonNull LayoutInflater inflater,
@Nullable Object component) {
return ViewDataBinding.<ListitemManageBinding>inflateInternal(inflater, R.layout.listitem_manage, null, false, component);
}
public static ListitemManageBinding bind(@NonNull View view) {
return bind(view, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.bind(view, component)
*/
@Deprecated
public static ListitemManageBinding bind(@NonNull View view, @Nullable Object component) {
return (ListitemManageBinding)bind(component, view, R.layout.listitem_manage);
}
}

View File

@@ -0,0 +1,92 @@
// Generated by data binding compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.Bindable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.manage.RepeaterManager;
import hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView;
import java.lang.Deprecated;
import java.lang.Object;
public abstract class ListitemRepeaterBinding extends ViewDataBinding {
@NonNull
public final AutoCollapseTextView addresses;
@Bindable
protected RepeaterManager.Data mData;
protected ListitemRepeaterBinding(Object _bindingComponent, View _root, int _localFieldCount,
AutoCollapseTextView addresses) {
super(_bindingComponent, _root, _localFieldCount);
this.addresses = addresses;
}
public abstract void setData(@Nullable RepeaterManager.Data data);
@Nullable
public RepeaterManager.Data getData() {
return mData;
}
@NonNull
public static ListitemRepeaterBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot) {
return inflate(inflater, root, attachToRoot, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_repeater, root, attachToRoot, component)
*/
@NonNull
@Deprecated
public static ListitemRepeaterBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup root, boolean attachToRoot, @Nullable Object component) {
return ViewDataBinding.<ListitemRepeaterBinding>inflateInternal(inflater, R.layout.listitem_repeater, root, attachToRoot, component);
}
@NonNull
public static ListitemRepeaterBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.inflate(inflater, R.layout.listitem_repeater, null, false, component)
*/
@NonNull
@Deprecated
public static ListitemRepeaterBinding inflate(@NonNull LayoutInflater inflater,
@Nullable Object component) {
return ViewDataBinding.<ListitemRepeaterBinding>inflateInternal(inflater, R.layout.listitem_repeater, null, false, component);
}
public static ListitemRepeaterBinding bind(@NonNull View view) {
return bind(view, DataBindingUtil.getDefaultComponent());
}
/**
* This method receives DataBindingComponent instance as type Object instead of
* type DataBindingComponent to avoid causing too many compilation errors if
* compilation fails for another reason.
* https://issuetracker.google.com/issues/116541301
* @Deprecated Use DataBindingUtil.bind(view, component)
*/
@Deprecated
public static ListitemRepeaterBinding bind(@NonNull View view, @Nullable Object component) {
return (ListitemRepeaterBinding)bind(component, view, R.layout.listitem_repeater);
}
}

View File

@@ -0,0 +1,89 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class PreferenceMaterialBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView summary;
@NonNull
public final TextView title;
@NonNull
public final LinearLayout widgetFrame;
private PreferenceMaterialBinding(@NonNull LinearLayout rootView, @NonNull TextView summary,
@NonNull TextView title, @NonNull LinearLayout widgetFrame) {
this.rootView = rootView;
this.summary = summary;
this.title = title;
this.widgetFrame = widgetFrame;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static PreferenceMaterialBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static PreferenceMaterialBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.preference_material, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static PreferenceMaterialBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = android.R.id.summary;
TextView summary = ViewBindings.findChildViewById(rootView, id);
if (summary == null) {
break missingId;
}
id = android.R.id.title;
TextView title = ViewBindings.findChildViewById(rootView, id);
if (title == null) {
break missingId;
}
id = android.R.id.widget_frame;
LinearLayout widgetFrame = ViewBindings.findChildViewById(rootView, id);
if (widgetFrame == null) {
break missingId;
}
return new PreferenceMaterialBinding((LinearLayout) rootView, summary, title, widgetFrame);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,70 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import com.google.android.material.textfield.TextInputLayout;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.widget.AlwaysAutoCompleteEditText;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class PreferenceWidgetEdittextAutocompleteBinding implements ViewBinding {
@NonNull
private final TextInputLayout rootView;
@NonNull
public final AlwaysAutoCompleteEditText edit;
private PreferenceWidgetEdittextAutocompleteBinding(@NonNull TextInputLayout rootView,
@NonNull AlwaysAutoCompleteEditText edit) {
this.rootView = rootView;
this.edit = edit;
}
@Override
@NonNull
public TextInputLayout getRoot() {
return rootView;
}
@NonNull
public static PreferenceWidgetEdittextAutocompleteBinding inflate(
@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static PreferenceWidgetEdittextAutocompleteBinding inflate(
@NonNull LayoutInflater inflater, @Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.preference_widget_edittext_autocomplete, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static PreferenceWidgetEdittextAutocompleteBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = android.R.id.edit;
AlwaysAutoCompleteEditText edit = ViewBindings.findChildViewById(rootView, id);
if (edit == null) {
break missingId;
}
return new PreferenceWidgetEdittextAutocompleteBinding((TextInputLayout) rootView, edit);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

View File

@@ -0,0 +1,59 @@
// Generated by view binder compiler. Do not edit!
package hanson.xyz.vpnhotspotmod.databinding;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import com.google.android.material.materialswitch.MaterialSwitch;
import hanson.xyz.vpnhotspotmod.R;
import java.lang.NullPointerException;
import java.lang.Override;
public final class PreferenceWidgetMaterialSwitchBinding implements ViewBinding {
@NonNull
private final MaterialSwitch rootView;
@NonNull
public final MaterialSwitch switchWidget;
private PreferenceWidgetMaterialSwitchBinding(@NonNull MaterialSwitch rootView,
@NonNull MaterialSwitch switchWidget) {
this.rootView = rootView;
this.switchWidget = switchWidget;
}
@Override
@NonNull
public MaterialSwitch getRoot() {
return rootView;
}
@NonNull
public static PreferenceWidgetMaterialSwitchBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static PreferenceWidgetMaterialSwitchBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.preference_widget_material_switch, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static PreferenceWidgetMaterialSwitchBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
MaterialSwitch switchWidget = (MaterialSwitch) rootView;
return new PreferenceWidgetMaterialSwitchBinding((MaterialSwitch) rootView, switchWidget);
}
}

View File

@@ -0,0 +1,4 @@
package hanson.xyz.vpnhotspotmod;
@androidx.databinding.BindingBuildInfo
public class DataBindingTriggerClass {}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="default_web_client_id" translatable="false">13108846109-5iemp5pbapg7n5epbk0mv96007m9bhmg.apps.googleusercontent.com</string>
<string name="firebase_database_url" translatable="false">https://mygod-vpnhotspot.firebaseio.com</string>
<string name="gcm_defaultSenderId" translatable="false">13108846109</string>
<string name="google_api_key" translatable="false">AIzaSyADp0gTf25H6H3KxDRKwvp0EaWq_XvYUmg</string>
<string name="google_app_id" translatable="false">1:13108846109:android:63120dcb2e900ed0</string>
<string name="google_crash_reporting_api_key" translatable="false">AIzaSyADp0gTf25H6H3KxDRKwvp0EaWq_XvYUmg</string>
<string name="google_storage_bucket" translatable="false">mygod-vpnhotspot.appspot.com</string>
<string name="project_id" translatable="false">mygod-vpnhotspot</string>
</resources>

View File

@@ -0,0 +1,13 @@
/**
* Automatically generated file. DO NOT MODIFY
*/
package hanson.xyz.vpnhotspotmod;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "hanson.xyz.vpnhotspotmod";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "freedom";
public static final int VERSION_CODE = 1005;
public static final String VERSION_NAME = "2.16.5";
}

View File

@@ -0,0 +1,7 @@
package androidx.databinding;
public class DataBinderMapperImpl extends MergedDataBinderMapper {
DataBinderMapperImpl() {
addMapper(new hanson.xyz.vpnhotspotmod.DataBinderMapperImpl());
}
}

View File

@@ -0,0 +1,4 @@
package androidx.databinding;
public interface DataBindingComponent {
}

View File

@@ -0,0 +1,19 @@
package androidx.databinding.library.baseAdapters;
public class BR {
public static final int _all = 0;
public static final int addresses = 1;
public static final int client = 2;
public static final int data = 3;
public static final int rate = 4;
public static final int serviceStarted = 5;
public static final int switchEnabled = 6;
public static final int title = 7;
}

View File

@@ -0,0 +1,19 @@
package hanson.xyz.vpnhotspotmod;
public class BR {
public static final int _all = 0;
public static final int addresses = 1;
public static final int client = 2;
public static final int data = 3;
public static final int rate = 4;
public static final int serviceStarted = 5;
public static final int switchEnabled = 6;
public static final int title = 7;
}

View File

@@ -0,0 +1,143 @@
package hanson.xyz.vpnhotspotmod;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.view.View;
import androidx.databinding.DataBinderMapper;
import androidx.databinding.DataBindingComponent;
import androidx.databinding.ViewDataBinding;
import hanson.xyz.vpnhotspotmod.databinding.ListitemClientBindingImpl;
import hanson.xyz.vpnhotspotmod.databinding.ListitemInterfaceBindingImpl;
import hanson.xyz.vpnhotspotmod.databinding.ListitemManageBindingImpl;
import hanson.xyz.vpnhotspotmod.databinding.ListitemRepeaterBindingImpl;
import java.lang.IllegalArgumentException;
import java.lang.Integer;
import java.lang.Object;
import java.lang.Override;
import java.lang.RuntimeException;
import java.lang.String;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DataBinderMapperImpl extends DataBinderMapper {
private static final int LAYOUT_LISTITEMCLIENT = 1;
private static final int LAYOUT_LISTITEMINTERFACE = 2;
private static final int LAYOUT_LISTITEMMANAGE = 3;
private static final int LAYOUT_LISTITEMREPEATER = 4;
private static final SparseIntArray INTERNAL_LAYOUT_ID_LOOKUP = new SparseIntArray(4);
static {
INTERNAL_LAYOUT_ID_LOOKUP.put(hanson.xyz.vpnhotspotmod.R.layout.listitem_client, LAYOUT_LISTITEMCLIENT);
INTERNAL_LAYOUT_ID_LOOKUP.put(hanson.xyz.vpnhotspotmod.R.layout.listitem_interface, LAYOUT_LISTITEMINTERFACE);
INTERNAL_LAYOUT_ID_LOOKUP.put(hanson.xyz.vpnhotspotmod.R.layout.listitem_manage, LAYOUT_LISTITEMMANAGE);
INTERNAL_LAYOUT_ID_LOOKUP.put(hanson.xyz.vpnhotspotmod.R.layout.listitem_repeater, LAYOUT_LISTITEMREPEATER);
}
@Override
public ViewDataBinding getDataBinder(DataBindingComponent component, View view, int layoutId) {
int localizedLayoutId = INTERNAL_LAYOUT_ID_LOOKUP.get(layoutId);
if(localizedLayoutId > 0) {
final Object tag = view.getTag();
if(tag == null) {
throw new RuntimeException("view must have a tag");
}
switch(localizedLayoutId) {
case LAYOUT_LISTITEMCLIENT: {
if ("layout/listitem_client_0".equals(tag)) {
return new ListitemClientBindingImpl(component, view);
}
throw new IllegalArgumentException("The tag for listitem_client is invalid. Received: " + tag);
}
case LAYOUT_LISTITEMINTERFACE: {
if ("layout/listitem_interface_0".equals(tag)) {
return new ListitemInterfaceBindingImpl(component, view);
}
throw new IllegalArgumentException("The tag for listitem_interface is invalid. Received: " + tag);
}
case LAYOUT_LISTITEMMANAGE: {
if ("layout/listitem_manage_0".equals(tag)) {
return new ListitemManageBindingImpl(component, view);
}
throw new IllegalArgumentException("The tag for listitem_manage is invalid. Received: " + tag);
}
case LAYOUT_LISTITEMREPEATER: {
if ("layout/listitem_repeater_0".equals(tag)) {
return new ListitemRepeaterBindingImpl(component, view);
}
throw new IllegalArgumentException("The tag for listitem_repeater is invalid. Received: " + tag);
}
}
}
return null;
}
@Override
public ViewDataBinding getDataBinder(DataBindingComponent component, View[] views, int layoutId) {
if(views == null || views.length == 0) {
return null;
}
int localizedLayoutId = INTERNAL_LAYOUT_ID_LOOKUP.get(layoutId);
if(localizedLayoutId > 0) {
final Object tag = views[0].getTag();
if(tag == null) {
throw new RuntimeException("view must have a tag");
}
switch(localizedLayoutId) {
}
}
return null;
}
@Override
public int getLayoutId(String tag) {
if (tag == null) {
return 0;
}
Integer tmpVal = InnerLayoutIdLookup.sKeys.get(tag);
return tmpVal == null ? 0 : tmpVal;
}
@Override
public String convertBrIdToString(int localId) {
String tmpVal = InnerBrLookup.sKeys.get(localId);
return tmpVal;
}
@Override
public List<DataBinderMapper> collectDependencies() {
ArrayList<DataBinderMapper> result = new ArrayList<DataBinderMapper>(1);
result.add(new androidx.databinding.library.baseAdapters.DataBinderMapperImpl());
return result;
}
private static class InnerBrLookup {
static final SparseArray<String> sKeys = new SparseArray<String>(8);
static {
sKeys.put(0, "_all");
sKeys.put(1, "addresses");
sKeys.put(2, "client");
sKeys.put(3, "data");
sKeys.put(4, "rate");
sKeys.put(5, "serviceStarted");
sKeys.put(6, "switchEnabled");
sKeys.put(7, "title");
}
}
private static class InnerLayoutIdLookup {
static final HashMap<String, Integer> sKeys = new HashMap<String, Integer>(4);
static {
sKeys.put("layout/listitem_client_0", hanson.xyz.vpnhotspotmod.R.layout.listitem_client);
sKeys.put("layout/listitem_interface_0", hanson.xyz.vpnhotspotmod.R.layout.listitem_interface);
sKeys.put("layout/listitem_manage_0", hanson.xyz.vpnhotspotmod.R.layout.listitem_manage);
sKeys.put("layout/listitem_repeater_0", hanson.xyz.vpnhotspotmod.R.layout.listitem_repeater);
}
}
}

View File

@@ -0,0 +1,282 @@
package hanson.xyz.vpnhotspotmod.databinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.BR;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.View;
@SuppressWarnings("unchecked")
public class ListitemClientBindingImpl extends ListitemClientBinding {
@Nullable
private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
@Nullable
private static final android.util.SparseIntArray sViewsWithIds;
static {
sIncludes = null;
sViewsWithIds = null;
}
// views
@NonNull
private final android.widget.LinearLayout mboundView0;
@NonNull
private final android.widget.ImageView mboundView1;
@NonNull
private final hanson.xyz.vpnhotspotmod.widget.LinkTextView mboundView2;
@NonNull
private final hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView mboundView4;
// variables
// values
// listeners
// Inverse Binding Event Handlers
public ListitemClientBindingImpl(@Nullable androidx.databinding.DataBindingComponent bindingComponent, @NonNull View root) {
this(bindingComponent, root, mapBindings(bindingComponent, root, 5, sIncludes, sViewsWithIds));
}
private ListitemClientBindingImpl(androidx.databinding.DataBindingComponent bindingComponent, View root, Object[] bindings) {
super(bindingComponent, root, 4
, (hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView) bindings[3]
);
this.description.setTag(null);
this.mboundView0 = (android.widget.LinearLayout) bindings[0];
this.mboundView0.setTag(null);
this.mboundView1 = (android.widget.ImageView) bindings[1];
this.mboundView1.setTag(null);
this.mboundView2 = (hanson.xyz.vpnhotspotmod.widget.LinkTextView) bindings[2];
this.mboundView2.setTag(null);
this.mboundView4 = (hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView) bindings[4];
this.mboundView4.setTag(null);
setRootTag(root);
// listeners
invalidateAll();
}
@Override
public void invalidateAll() {
synchronized(this) {
mDirtyFlags = 0x20L;
}
requestRebind();
}
@Override
public boolean hasPendingBindings() {
synchronized(this) {
if (mDirtyFlags != 0) {
return true;
}
}
return false;
}
@Override
public boolean setVariable(int variableId, @Nullable Object variable) {
boolean variableSet = true;
if (BR.rate == variableId) {
setRate((hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate) variable);
}
else if (BR.client == variableId) {
setClient((hanson.xyz.vpnhotspotmod.client.Client) variable);
}
else {
variableSet = false;
}
return variableSet;
}
public void setRate(@Nullable hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate Rate) {
updateRegistration(0, Rate);
this.mRate = Rate;
synchronized(this) {
mDirtyFlags |= 0x1L;
}
notifyPropertyChanged(BR.rate);
super.requestRebind();
}
public void setClient(@Nullable hanson.xyz.vpnhotspotmod.client.Client Client) {
this.mClient = Client;
synchronized(this) {
mDirtyFlags |= 0x10L;
}
notifyPropertyChanged(BR.client);
super.requestRebind();
}
@Override
protected boolean onFieldChange(int localFieldId, Object object, int fieldId) {
switch (localFieldId) {
case 0 :
return onChangeRate((hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate) object, fieldId);
case 1 :
return onChangeClientTitleSelectable((androidx.lifecycle.LiveData<java.lang.Boolean>) object, fieldId);
case 2 :
return onChangeClientDescription((androidx.lifecycle.LiveData<java.lang.CharSequence>) object, fieldId);
case 3 :
return onChangeClientTitle((androidx.lifecycle.LiveData<android.text.SpannableStringBuilder>) object, fieldId);
}
return false;
}
private boolean onChangeRate(hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate Rate, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x1L;
}
return true;
}
return false;
}
private boolean onChangeClientTitleSelectable(androidx.lifecycle.LiveData<java.lang.Boolean> ClientTitleSelectable, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x2L;
}
return true;
}
return false;
}
private boolean onChangeClientDescription(androidx.lifecycle.LiveData<java.lang.CharSequence> ClientDescription, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x4L;
}
return true;
}
return false;
}
private boolean onChangeClientTitle(androidx.lifecycle.LiveData<android.text.SpannableStringBuilder> ClientTitle, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x8L;
}
return true;
}
return false;
}
@Override
protected void executeBindings() {
long dirtyFlags = 0;
synchronized(this) {
dirtyFlags = mDirtyFlags;
mDirtyFlags = 0;
}
java.lang.Boolean clientTitleSelectableGetValue = null;
hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate rate = mRate;
int clientIcon = 0;
androidx.lifecycle.LiveData<java.lang.Boolean> clientTitleSelectable = null;
androidx.lifecycle.LiveData<java.lang.CharSequence> clientDescription = null;
hanson.xyz.vpnhotspotmod.client.Client client = mClient;
java.lang.CharSequence clientDescriptionGetValue = null;
androidx.lifecycle.LiveData<android.text.SpannableStringBuilder> clientTitle = null;
java.lang.String rateToString = null;
boolean androidxDatabindingViewDataBindingSafeUnboxClientTitleSelectableGetValue = false;
android.text.SpannableStringBuilder clientTitleGetValue = null;
if ((dirtyFlags & 0x21L) != 0) {
if (rate != null) {
// read rate.toString()
rateToString = rate.toString();
}
}
if ((dirtyFlags & 0x3eL) != 0) {
if ((dirtyFlags & 0x30L) != 0) {
if (client != null) {
// read client.icon
clientIcon = client.getIcon();
}
}
if ((dirtyFlags & 0x32L) != 0) {
if (client != null) {
// read client.titleSelectable
clientTitleSelectable = client.getTitleSelectable();
}
updateLiveDataRegistration(1, clientTitleSelectable);
if (clientTitleSelectable != null) {
// read client.titleSelectable.getValue()
clientTitleSelectableGetValue = clientTitleSelectable.getValue();
}
// read androidx.databinding.ViewDataBinding.safeUnbox(client.titleSelectable.getValue())
androidxDatabindingViewDataBindingSafeUnboxClientTitleSelectableGetValue = androidx.databinding.ViewDataBinding.safeUnbox(clientTitleSelectableGetValue);
}
if ((dirtyFlags & 0x34L) != 0) {
if (client != null) {
// read client.description
clientDescription = client.getDescription();
}
updateLiveDataRegistration(2, clientDescription);
if (clientDescription != null) {
// read client.description.getValue()
clientDescriptionGetValue = clientDescription.getValue();
}
}
if ((dirtyFlags & 0x38L) != 0) {
if (client != null) {
// read client.title
clientTitle = client.getTitle();
}
updateLiveDataRegistration(3, clientTitle);
if (clientTitle != null) {
// read client.title.getValue()
clientTitleGetValue = clientTitle.getValue();
}
}
}
// batch finished
if ((dirtyFlags & 0x34L) != 0) {
// api target 1
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.description, clientDescriptionGetValue);
}
if ((dirtyFlags & 0x30L) != 0) {
// api target 1
hanson.xyz.vpnhotspotmod.util.UtilsKt.setImageResource(this.mboundView1, clientIcon);
}
if ((dirtyFlags & 0x38L) != 0) {
// api target 1
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.mboundView2, clientTitleGetValue);
}
if ((dirtyFlags & 0x32L) != 0) {
// api target 11
if(getBuildSdkInt() >= 11) {
this.mboundView2.setTextIsSelectable(androidxDatabindingViewDataBindingSafeUnboxClientTitleSelectableGetValue);
}
}
if ((dirtyFlags & 0x21L) != 0) {
// api target 1
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.mboundView4, rateToString);
}
}
// Listener Stub Implementations
// callback impls
// dirty flag
private long mDirtyFlags = 0xffffffffffffffffL;
/* flag mapping
flag 0 (0x1L): rate
flag 1 (0x2L): client.titleSelectable
flag 2 (0x3L): client.description
flag 3 (0x4L): client.title
flag 4 (0x5L): client
flag 5 (0x6L): null
flag mapping end*/
//end
}

View File

@@ -0,0 +1,166 @@
package hanson.xyz.vpnhotspotmod.databinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.BR;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.View;
@SuppressWarnings("unchecked")
public class ListitemInterfaceBindingImpl extends ListitemInterfaceBinding {
@Nullable
private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
@Nullable
private static final android.util.SparseIntArray sViewsWithIds;
static {
sIncludes = null;
sViewsWithIds = null;
}
// views
@NonNull
private final android.widget.LinearLayout mboundView0;
@NonNull
private final android.widget.ImageView mboundView1;
@NonNull
private final android.widget.TextView mboundView2;
@NonNull
private final com.google.android.material.materialswitch.MaterialSwitch mboundView4;
// variables
// values
// listeners
// Inverse Binding Event Handlers
public ListitemInterfaceBindingImpl(@Nullable androidx.databinding.DataBindingComponent bindingComponent, @NonNull View root) {
this(bindingComponent, root, mapBindings(bindingComponent, root, 5, sIncludes, sViewsWithIds));
}
private ListitemInterfaceBindingImpl(androidx.databinding.DataBindingComponent bindingComponent, View root, Object[] bindings) {
super(bindingComponent, root, 1
, (hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView) bindings[3]
);
this.mboundView0 = (android.widget.LinearLayout) bindings[0];
this.mboundView0.setTag(null);
this.mboundView1 = (android.widget.ImageView) bindings[1];
this.mboundView1.setTag(null);
this.mboundView2 = (android.widget.TextView) bindings[2];
this.mboundView2.setTag(null);
this.mboundView4 = (com.google.android.material.materialswitch.MaterialSwitch) bindings[4];
this.mboundView4.setTag(null);
this.text.setTag(null);
setRootTag(root);
// listeners
invalidateAll();
}
@Override
public void invalidateAll() {
synchronized(this) {
mDirtyFlags = 0x2L;
}
requestRebind();
}
@Override
public boolean hasPendingBindings() {
synchronized(this) {
if (mDirtyFlags != 0) {
return true;
}
}
return false;
}
@Override
public boolean setVariable(int variableId, @Nullable Object variable) {
boolean variableSet = true;
if (BR.data == variableId) {
setData((hanson.xyz.vpnhotspotmod.manage.Data) variable);
}
else {
variableSet = false;
}
return variableSet;
}
public void setData(@Nullable hanson.xyz.vpnhotspotmod.manage.Data Data) {
updateRegistration(0, Data);
this.mData = Data;
synchronized(this) {
mDirtyFlags |= 0x1L;
}
notifyPropertyChanged(BR.data);
super.requestRebind();
}
@Override
protected boolean onFieldChange(int localFieldId, Object object, int fieldId) {
switch (localFieldId) {
case 0 :
return onChangeData((hanson.xyz.vpnhotspotmod.manage.Data) object, fieldId);
}
return false;
}
private boolean onChangeData(hanson.xyz.vpnhotspotmod.manage.Data Data, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x1L;
}
return true;
}
return false;
}
@Override
protected void executeBindings() {
long dirtyFlags = 0;
synchronized(this) {
dirtyFlags = mDirtyFlags;
mDirtyFlags = 0;
}
java.lang.CharSequence dataText = null;
java.lang.CharSequence dataTitle = null;
boolean dataActive = false;
boolean dataSelectable = false;
hanson.xyz.vpnhotspotmod.manage.Data data = mData;
int dataIcon = 0;
if ((dirtyFlags & 0x3L) != 0) {
if (data != null) {
// read data.text
dataText = data.getText();
// read data.title
dataTitle = data.getTitle();
// read data.active
dataActive = data.getActive();
// read data.selectable
dataSelectable = data.getSelectable();
// read data.icon
dataIcon = data.getIcon();
}
}
// batch finished
if ((dirtyFlags & 0x3L) != 0) {
// api target 1
hanson.xyz.vpnhotspotmod.util.UtilsKt.setImageResource(this.mboundView1, dataIcon);
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.mboundView2, dataTitle);
androidx.databinding.adapters.CompoundButtonBindingAdapter.setChecked(this.mboundView4, dataActive);
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.text, dataText);
// api target 11
if(getBuildSdkInt() >= 11) {
this.text.setTextIsSelectable(dataSelectable);
}
}
}
// Listener Stub Implementations
// callback impls
// dirty flag
private long mDirtyFlags = 0xffffffffffffffffL;
/* flag mapping
flag 0 (0x1L): data
flag 1 (0x2L): null
flag mapping end*/
//end
}

View File

@@ -0,0 +1,134 @@
package hanson.xyz.vpnhotspotmod.databinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.BR;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.View;
@SuppressWarnings("unchecked")
public class ListitemManageBindingImpl extends ListitemManageBinding {
@Nullable
private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
@Nullable
private static final android.util.SparseIntArray sViewsWithIds;
static {
sIncludes = null;
sViewsWithIds = null;
}
// views
@NonNull
private final android.widget.LinearLayout mboundView0;
// variables
// values
// listeners
// Inverse Binding Event Handlers
public ListitemManageBindingImpl(@Nullable androidx.databinding.DataBindingComponent bindingComponent, @NonNull View root) {
this(bindingComponent, root, mapBindings(bindingComponent, root, 2, sIncludes, sViewsWithIds));
}
private ListitemManageBindingImpl(androidx.databinding.DataBindingComponent bindingComponent, View root, Object[] bindings) {
super(bindingComponent, root, 1
, (android.widget.TextView) bindings[1]
);
this.mboundView0 = (android.widget.LinearLayout) bindings[0];
this.mboundView0.setTag(null);
this.offloadEnabled.setTag(null);
setRootTag(root);
// listeners
invalidateAll();
}
@Override
public void invalidateAll() {
synchronized(this) {
mDirtyFlags = 0x2L;
}
requestRebind();
}
@Override
public boolean hasPendingBindings() {
synchronized(this) {
if (mDirtyFlags != 0) {
return true;
}
}
return false;
}
@Override
public boolean setVariable(int variableId, @Nullable Object variable) {
boolean variableSet = true;
if (BR.data == variableId) {
setData((hanson.xyz.vpnhotspotmod.manage.ManageBar.Data) variable);
}
else {
variableSet = false;
}
return variableSet;
}
public void setData(@Nullable hanson.xyz.vpnhotspotmod.manage.ManageBar.Data Data) {
updateRegistration(0, Data);
this.mData = Data;
synchronized(this) {
mDirtyFlags |= 0x1L;
}
notifyPropertyChanged(BR.data);
super.requestRebind();
}
@Override
protected boolean onFieldChange(int localFieldId, Object object, int fieldId) {
switch (localFieldId) {
case 0 :
return onChangeData((hanson.xyz.vpnhotspotmod.manage.ManageBar.Data) object, fieldId);
}
return false;
}
private boolean onChangeData(hanson.xyz.vpnhotspotmod.manage.ManageBar.Data Data, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x1L;
}
return true;
}
return false;
}
@Override
protected void executeBindings() {
long dirtyFlags = 0;
synchronized(this) {
dirtyFlags = mDirtyFlags;
mDirtyFlags = 0;
}
boolean dataOffloadEnabled = false;
hanson.xyz.vpnhotspotmod.manage.ManageBar.Data data = mData;
if ((dirtyFlags & 0x3L) != 0) {
if (data != null) {
// read data.offloadEnabled
dataOffloadEnabled = data.getOffloadEnabled();
}
}
// batch finished
if ((dirtyFlags & 0x3L) != 0) {
// api target 1
hanson.xyz.vpnhotspotmod.util.UtilsKt.setVisibility(this.offloadEnabled, dataOffloadEnabled);
}
}
// Listener Stub Implementations
// callback impls
// dirty flag
private long mDirtyFlags = 0xffffffffffffffffL;
/* flag mapping
flag 0 (0x1L): data
flag 1 (0x2L): null
flag mapping end*/
//end
}

View File

@@ -0,0 +1,285 @@
package hanson.xyz.vpnhotspotmod.databinding;
import hanson.xyz.vpnhotspotmod.R;
import hanson.xyz.vpnhotspotmod.BR;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.View;
@SuppressWarnings("unchecked")
public class ListitemRepeaterBindingImpl extends ListitemRepeaterBinding implements hanson.xyz.vpnhotspotmod.generated.callback.OnClickListener.Listener {
@Nullable
private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
@Nullable
private static final android.util.SparseIntArray sViewsWithIds;
static {
sIncludes = null;
sViewsWithIds = null;
}
// views
@NonNull
private final android.widget.LinearLayout mboundView0;
@NonNull
private final android.widget.LinearLayout mboundView1;
@NonNull
private final android.widget.TextView mboundView2;
@NonNull
private final com.google.android.material.materialswitch.MaterialSwitch mboundView4;
@NonNull
private final android.widget.LinearLayout mboundView5;
// variables
@Nullable
private final android.view.View.OnClickListener mCallback1;
@Nullable
private final android.view.View.OnClickListener mCallback2;
// values
// listeners
// Inverse Binding Event Handlers
public ListitemRepeaterBindingImpl(@Nullable androidx.databinding.DataBindingComponent bindingComponent, @NonNull View root) {
this(bindingComponent, root, mapBindings(bindingComponent, root, 6, sIncludes, sViewsWithIds));
}
private ListitemRepeaterBindingImpl(androidx.databinding.DataBindingComponent bindingComponent, View root, Object[] bindings) {
super(bindingComponent, root, 1
, (hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView) bindings[3]
);
this.addresses.setTag(null);
this.mboundView0 = (android.widget.LinearLayout) bindings[0];
this.mboundView0.setTag(null);
this.mboundView1 = (android.widget.LinearLayout) bindings[1];
this.mboundView1.setTag(null);
this.mboundView2 = (android.widget.TextView) bindings[2];
this.mboundView2.setTag(null);
this.mboundView4 = (com.google.android.material.materialswitch.MaterialSwitch) bindings[4];
this.mboundView4.setTag(null);
this.mboundView5 = (android.widget.LinearLayout) bindings[5];
this.mboundView5.setTag(null);
setRootTag(root);
// listeners
mCallback1 = new hanson.xyz.vpnhotspotmod.generated.callback.OnClickListener(this, 1);
mCallback2 = new hanson.xyz.vpnhotspotmod.generated.callback.OnClickListener(this, 2);
invalidateAll();
}
@Override
public void invalidateAll() {
synchronized(this) {
mDirtyFlags = 0x20L;
}
requestRebind();
}
@Override
public boolean hasPendingBindings() {
synchronized(this) {
if (mDirtyFlags != 0) {
return true;
}
}
return false;
}
@Override
public boolean setVariable(int variableId, @Nullable Object variable) {
boolean variableSet = true;
if (BR.data == variableId) {
setData((hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data) variable);
}
else {
variableSet = false;
}
return variableSet;
}
public void setData(@Nullable hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data Data) {
updateRegistration(0, Data);
this.mData = Data;
synchronized(this) {
mDirtyFlags |= 0x1L;
}
notifyPropertyChanged(BR.data);
super.requestRebind();
}
@Override
protected boolean onFieldChange(int localFieldId, Object object, int fieldId) {
switch (localFieldId) {
case 0 :
return onChangeData((hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data) object, fieldId);
}
return false;
}
private boolean onChangeData(hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data Data, int fieldId) {
if (fieldId == BR._all) {
synchronized(this) {
mDirtyFlags |= 0x1L;
}
return true;
}
else if (fieldId == BR.title) {
synchronized(this) {
mDirtyFlags |= 0x2L;
}
return true;
}
else if (fieldId == BR.addresses) {
synchronized(this) {
mDirtyFlags |= 0x4L;
}
return true;
}
else if (fieldId == BR.serviceStarted) {
synchronized(this) {
mDirtyFlags |= 0x8L;
}
return true;
}
else if (fieldId == BR.switchEnabled) {
synchronized(this) {
mDirtyFlags |= 0x10L;
}
return true;
}
return false;
}
@Override
protected void executeBindings() {
long dirtyFlags = 0;
synchronized(this) {
dirtyFlags = mDirtyFlags;
mDirtyFlags = 0;
}
java.lang.CharSequence dataTitle = null;
boolean dataSwitchEnabled = false;
boolean dataServiceStartedWifiP2pManagerHelperGetStartWpsJavaLangObjectNullBooleanFalse = false;
boolean dataServiceStarted = false;
hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data data = mData;
java.lang.CharSequence dataAddresses = null;
if ((dirtyFlags & 0x3fL) != 0) {
if ((dirtyFlags & 0x23L) != 0) {
if (data != null) {
// read data.title
dataTitle = data.getTitle();
}
}
if ((dirtyFlags & 0x31L) != 0) {
if (data != null) {
// read data.switchEnabled
dataSwitchEnabled = data.getSwitchEnabled();
}
}
if ((dirtyFlags & 0x29L) != 0) {
if (data != null) {
// read data.serviceStarted
dataServiceStarted = data.getServiceStarted();
}
if((dirtyFlags & 0x29L) != 0) {
if(dataServiceStarted) {
dirtyFlags |= 0x80L;
}
else {
dirtyFlags |= 0x40L;
}
}
// read data.serviceStarted ? WifiP2pManagerHelper.getStartWps() != null : false
dataServiceStartedWifiP2pManagerHelperGetStartWpsJavaLangObjectNullBooleanFalse = ((dataServiceStarted) ? ((hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper.getStartWps()) != (null)) : (false));
}
if ((dirtyFlags & 0x25L) != 0) {
if (data != null) {
// read data.addresses
dataAddresses = data.getAddresses();
}
}
}
// batch finished
if ((dirtyFlags & 0x25L) != 0) {
// api target 1
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.addresses, dataAddresses);
}
if ((dirtyFlags & 0x20L) != 0) {
// api target 1
this.mboundView1.setOnClickListener(mCallback1);
this.mboundView5.setOnClickListener(mCallback2);
}
if ((dirtyFlags & 0x23L) != 0) {
// api target 1
androidx.databinding.adapters.TextViewBindingAdapter.setText(this.mboundView2, dataTitle);
}
if ((dirtyFlags & 0x29L) != 0) {
// api target 1
androidx.databinding.adapters.CompoundButtonBindingAdapter.setChecked(this.mboundView4, dataServiceStarted);
hanson.xyz.vpnhotspotmod.util.UtilsKt.setVisibility(this.mboundView5, dataServiceStartedWifiP2pManagerHelperGetStartWpsJavaLangObjectNullBooleanFalse);
}
if ((dirtyFlags & 0x31L) != 0) {
// api target 1
this.mboundView4.setEnabled(dataSwitchEnabled);
}
}
// Listener Stub Implementations
// callback impls
public final void _internalCallbackOnClick(int sourceId , android.view.View callbackArg_0) {
switch(sourceId) {
case 1: {
// localize variables for thread safety
// data != null
boolean dataJavaLangObjectNull = false;
// data
hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data data = mData;
dataJavaLangObjectNull = (data) != (null);
if (dataJavaLangObjectNull) {
data.toggle();
}
break;
}
case 2: {
// localize variables for thread safety
// data != null
boolean dataJavaLangObjectNull = false;
// data
hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data data = mData;
dataJavaLangObjectNull = (data) != (null);
if (dataJavaLangObjectNull) {
data.wps();
}
break;
}
}
}
// dirty flag
private long mDirtyFlags = 0xffffffffffffffffL;
/* flag mapping
flag 0 (0x1L): data
flag 1 (0x2L): data.title
flag 2 (0x3L): data.addresses
flag 3 (0x4L): data.serviceStarted
flag 4 (0x5L): data.switchEnabled
flag 5 (0x6L): null
flag 6 (0x7L): data.serviceStarted ? WifiP2pManagerHelper.getStartWps() != null : false
flag 7 (0x8L): data.serviceStarted ? WifiP2pManagerHelper.getStartWps() != null : false
flag mapping end*/
//end
}

View File

@@ -0,0 +1,16 @@
package hanson.xyz.vpnhotspotmod.generated.callback;
public final class OnClickListener implements android.view.View.OnClickListener {
final Listener mListener;
final int mSourceId;
public OnClickListener(Listener listener, int sourceId) {
mListener = listener;
mSourceId = sourceId;
}
@Override
public void onClick(android.view.View callbackArg_0) {
mListener._internalCallbackOnClick(mSourceId , callbackArg_0);
}
public interface Listener {
void _internalCallbackOnClick(int sourceId , android.view.View callbackArg_0);
}
}

View File

@@ -0,0 +1,227 @@
package hanson.xyz.vpnhotspotmod.room;
import androidx.annotation.NonNull;
import androidx.room.DatabaseConfiguration;
import androidx.room.InvalidationTracker;
import androidx.room.RoomDatabase;
import androidx.room.RoomOpenHelper;
import androidx.room.migration.AutoMigrationSpec;
import androidx.room.migration.Migration;
import androidx.room.util.DBUtil;
import androidx.room.util.TableInfo;
import androidx.sqlite.db.SupportSQLiteDatabase;
import androidx.sqlite.db.SupportSQLiteOpenHelper;
import java.lang.Class;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.processing.Generated;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
public final class AppDatabase_Impl extends AppDatabase {
private volatile ClientRecord.Dao _clientRecord;
private volatile TrafficRecord.Dao _trafficRecord;
@Override
@NonNull
protected SupportSQLiteOpenHelper createOpenHelper(@NonNull final DatabaseConfiguration config) {
final SupportSQLiteOpenHelper.Callback _openCallback = new RoomOpenHelper(config, new RoomOpenHelper.Delegate(2) {
@Override
public void createAllTables(@NonNull final SupportSQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS `ClientRecord` (`mac` INTEGER NOT NULL, `nickname` BLOB NOT NULL, `blocked` INTEGER NOT NULL, `macLookupPending` INTEGER NOT NULL, PRIMARY KEY(`mac`))");
db.execSQL("CREATE TABLE IF NOT EXISTS `TrafficRecord` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `timestamp` INTEGER NOT NULL, `mac` INTEGER NOT NULL, `ip` BLOB NOT NULL, `upstream` TEXT, `downstream` TEXT NOT NULL, `sentPackets` INTEGER NOT NULL, `sentBytes` INTEGER NOT NULL, `receivedPackets` INTEGER NOT NULL, `receivedBytes` INTEGER NOT NULL, `previousId` INTEGER, FOREIGN KEY(`previousId`) REFERENCES `TrafficRecord`(`id`) ON UPDATE RESTRICT ON DELETE CASCADE )");
db.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_TrafficRecord_previousId` ON `TrafficRecord` (`previousId`)");
db.execSQL("CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)");
db.execSQL("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '92a6c0406ed7265dbd98eb3c24095651')");
}
@Override
public void dropAllTables(@NonNull final SupportSQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS `ClientRecord`");
db.execSQL("DROP TABLE IF EXISTS `TrafficRecord`");
final List<? extends RoomDatabase.Callback> _callbacks = mCallbacks;
if (_callbacks != null) {
for (RoomDatabase.Callback _callback : _callbacks) {
_callback.onDestructiveMigration(db);
}
}
}
@Override
public void onCreate(@NonNull final SupportSQLiteDatabase db) {
final List<? extends RoomDatabase.Callback> _callbacks = mCallbacks;
if (_callbacks != null) {
for (RoomDatabase.Callback _callback : _callbacks) {
_callback.onCreate(db);
}
}
}
@Override
public void onOpen(@NonNull final SupportSQLiteDatabase db) {
mDatabase = db;
db.execSQL("PRAGMA foreign_keys = ON");
internalInitInvalidationTracker(db);
final List<? extends RoomDatabase.Callback> _callbacks = mCallbacks;
if (_callbacks != null) {
for (RoomDatabase.Callback _callback : _callbacks) {
_callback.onOpen(db);
}
}
}
@Override
public void onPreMigrate(@NonNull final SupportSQLiteDatabase db) {
DBUtil.dropFtsSyncTriggers(db);
}
@Override
public void onPostMigrate(@NonNull final SupportSQLiteDatabase db) {
}
@Override
@NonNull
public RoomOpenHelper.ValidationResult onValidateSchema(
@NonNull final SupportSQLiteDatabase db) {
final HashMap<String, TableInfo.Column> _columnsClientRecord = new HashMap<String, TableInfo.Column>(4);
_columnsClientRecord.put("mac", new TableInfo.Column("mac", "INTEGER", true, 1, null, TableInfo.CREATED_FROM_ENTITY));
_columnsClientRecord.put("nickname", new TableInfo.Column("nickname", "BLOB", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsClientRecord.put("blocked", new TableInfo.Column("blocked", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsClientRecord.put("macLookupPending", new TableInfo.Column("macLookupPending", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
final HashSet<TableInfo.ForeignKey> _foreignKeysClientRecord = new HashSet<TableInfo.ForeignKey>(0);
final HashSet<TableInfo.Index> _indicesClientRecord = new HashSet<TableInfo.Index>(0);
final TableInfo _infoClientRecord = new TableInfo("ClientRecord", _columnsClientRecord, _foreignKeysClientRecord, _indicesClientRecord);
final TableInfo _existingClientRecord = TableInfo.read(db, "ClientRecord");
if (!_infoClientRecord.equals(_existingClientRecord)) {
return new RoomOpenHelper.ValidationResult(false, "ClientRecord(hanson.xyz.vpnhotspotmod.room.ClientRecord).\n"
+ " Expected:\n" + _infoClientRecord + "\n"
+ " Found:\n" + _existingClientRecord);
}
final HashMap<String, TableInfo.Column> _columnsTrafficRecord = new HashMap<String, TableInfo.Column>(11);
_columnsTrafficRecord.put("id", new TableInfo.Column("id", "INTEGER", false, 1, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("timestamp", new TableInfo.Column("timestamp", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("mac", new TableInfo.Column("mac", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("ip", new TableInfo.Column("ip", "BLOB", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("upstream", new TableInfo.Column("upstream", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("downstream", new TableInfo.Column("downstream", "TEXT", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("sentPackets", new TableInfo.Column("sentPackets", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("sentBytes", new TableInfo.Column("sentBytes", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("receivedPackets", new TableInfo.Column("receivedPackets", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("receivedBytes", new TableInfo.Column("receivedBytes", "INTEGER", true, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columnsTrafficRecord.put("previousId", new TableInfo.Column("previousId", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
final HashSet<TableInfo.ForeignKey> _foreignKeysTrafficRecord = new HashSet<TableInfo.ForeignKey>(1);
_foreignKeysTrafficRecord.add(new TableInfo.ForeignKey("TrafficRecord", "CASCADE", "RESTRICT", Arrays.asList("previousId"), Arrays.asList("id")));
final HashSet<TableInfo.Index> _indicesTrafficRecord = new HashSet<TableInfo.Index>(1);
_indicesTrafficRecord.add(new TableInfo.Index("index_TrafficRecord_previousId", true, Arrays.asList("previousId"), Arrays.asList("ASC")));
final TableInfo _infoTrafficRecord = new TableInfo("TrafficRecord", _columnsTrafficRecord, _foreignKeysTrafficRecord, _indicesTrafficRecord);
final TableInfo _existingTrafficRecord = TableInfo.read(db, "TrafficRecord");
if (!_infoTrafficRecord.equals(_existingTrafficRecord)) {
return new RoomOpenHelper.ValidationResult(false, "TrafficRecord(hanson.xyz.vpnhotspotmod.room.TrafficRecord).\n"
+ " Expected:\n" + _infoTrafficRecord + "\n"
+ " Found:\n" + _existingTrafficRecord);
}
return new RoomOpenHelper.ValidationResult(true, null);
}
}, "92a6c0406ed7265dbd98eb3c24095651", "1f08a76d9f7ed5013d3879caeddd243c");
final SupportSQLiteOpenHelper.Configuration _sqliteConfig = SupportSQLiteOpenHelper.Configuration.builder(config.context).name(config.name).callback(_openCallback).build();
final SupportSQLiteOpenHelper _helper = config.sqliteOpenHelperFactory.create(_sqliteConfig);
return _helper;
}
@Override
@NonNull
protected InvalidationTracker createInvalidationTracker() {
final HashMap<String, String> _shadowTablesMap = new HashMap<String, String>(0);
final HashMap<String, Set<String>> _viewTables = new HashMap<String, Set<String>>(0);
return new InvalidationTracker(this, _shadowTablesMap, _viewTables, "ClientRecord","TrafficRecord");
}
@Override
public void clearAllTables() {
super.assertNotMainThread();
final SupportSQLiteDatabase _db = super.getOpenHelper().getWritableDatabase();
final boolean _supportsDeferForeignKeys = android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP;
try {
if (!_supportsDeferForeignKeys) {
_db.execSQL("PRAGMA foreign_keys = FALSE");
}
super.beginTransaction();
if (_supportsDeferForeignKeys) {
_db.execSQL("PRAGMA defer_foreign_keys = TRUE");
}
_db.execSQL("DELETE FROM `ClientRecord`");
_db.execSQL("DELETE FROM `TrafficRecord`");
super.setTransactionSuccessful();
} finally {
super.endTransaction();
if (!_supportsDeferForeignKeys) {
_db.execSQL("PRAGMA foreign_keys = TRUE");
}
_db.query("PRAGMA wal_checkpoint(FULL)").close();
if (!_db.inTransaction()) {
_db.execSQL("VACUUM");
}
}
}
@Override
@NonNull
protected Map<Class<?>, List<Class<?>>> getRequiredTypeConverters() {
final HashMap<Class<?>, List<Class<?>>> _typeConvertersMap = new HashMap<Class<?>, List<Class<?>>>();
_typeConvertersMap.put(ClientRecord.Dao.class, ClientRecord_Dao_Impl.getRequiredConverters());
_typeConvertersMap.put(TrafficRecord.Dao.class, TrafficRecord_Dao_Impl.getRequiredConverters());
return _typeConvertersMap;
}
@Override
@NonNull
public Set<Class<? extends AutoMigrationSpec>> getRequiredAutoMigrationSpecs() {
final HashSet<Class<? extends AutoMigrationSpec>> _autoMigrationSpecsSet = new HashSet<Class<? extends AutoMigrationSpec>>();
return _autoMigrationSpecsSet;
}
@Override
@NonNull
public List<Migration> getAutoMigrations(
@NonNull final Map<Class<? extends AutoMigrationSpec>, AutoMigrationSpec> autoMigrationSpecs) {
final List<Migration> _autoMigrations = new ArrayList<Migration>();
return _autoMigrations;
}
@Override
public ClientRecord.Dao getClientRecordDao() {
if (_clientRecord != null) {
return _clientRecord;
} else {
synchronized(this) {
if(_clientRecord == null) {
_clientRecord = new ClientRecord_Dao_Impl(this);
}
return _clientRecord;
}
}
}
@Override
public TrafficRecord.Dao getTrafficRecordDao() {
if (_trafficRecord != null) {
return _trafficRecord;
} else {
synchronized(this) {
if(_trafficRecord == null) {
_trafficRecord = new TrafficRecord_Dao_Impl(this);
}
return _trafficRecord;
}
}
}
}

View File

@@ -0,0 +1,255 @@
package hanson.xyz.vpnhotspotmod.room;
import android.database.Cursor;
import android.net.MacAddress;
import android.os.CancellationSignal;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.LiveData;
import androidx.room.CoroutinesRoom;
import androidx.room.EntityInsertionAdapter;
import androidx.room.RoomDatabase;
import androidx.room.RoomDatabaseKt;
import androidx.room.RoomSQLiteQuery;
import androidx.room.util.CursorUtil;
import androidx.room.util.DBUtil;
import androidx.sqlite.db.SupportSQLiteStatement;
import java.lang.CharSequence;
import java.lang.Class;
import java.lang.Exception;
import java.lang.Long;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import javax.annotation.processing.Generated;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.jvm.functions.Function2;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
public final class ClientRecord_Dao_Impl extends ClientRecord.Dao {
private final RoomDatabase __db;
private final EntityInsertionAdapter<ClientRecord> __insertionAdapterOfClientRecord;
public ClientRecord_Dao_Impl(@NonNull final RoomDatabase __db) {
this.__db = __db;
this.__insertionAdapterOfClientRecord = new EntityInsertionAdapter<ClientRecord>(__db) {
@Override
@NonNull
protected String createQuery() {
return "INSERT OR REPLACE INTO `ClientRecord` (`mac`,`nickname`,`blocked`,`macLookupPending`) VALUES (?,?,?,?)";
}
@Override
protected void bind(@NonNull final SupportSQLiteStatement statement,
@NonNull final ClientRecord entity) {
final long _tmp = Converters.INSTANCE.persistMacAddress(entity.getMac());
statement.bindLong(1, _tmp);
final byte[] _tmp_1 = Converters.INSTANCE.persistCharSequence(entity.getNickname());
if (_tmp_1 == null) {
statement.bindNull(2);
} else {
statement.bindBlob(2, _tmp_1);
}
final int _tmp_2 = entity.getBlocked() ? 1 : 0;
statement.bindLong(3, _tmp_2);
final int _tmp_3 = entity.getMacLookupPending() ? 1 : 0;
statement.bindLong(4, _tmp_3);
}
};
}
@Override
protected Object updateInternal(final ClientRecord value,
final Continuation<? super Long> $completion) {
return CoroutinesRoom.execute(__db, true, new Callable<Long>() {
@Override
@NonNull
public Long call() throws Exception {
__db.beginTransaction();
try {
final Long _result = __insertionAdapterOfClientRecord.insertAndReturnId(value);
__db.setTransactionSuccessful();
return _result;
} finally {
__db.endTransaction();
}
}
}, $completion);
}
@Override
public Object upsert(final MacAddress mac,
final Function2<? super ClientRecord, ? super Continuation<? super Unit>, ?> operation,
final Continuation<? super ClientRecord> $completion) {
return RoomDatabaseKt.withTransaction(__db, (__cont) -> ClientRecord_Dao_Impl.super.upsert(mac, operation, __cont), $completion);
}
@Override
protected ClientRecord lookupBlocking(final MacAddress mac) {
final String _sql = "SELECT * FROM `ClientRecord` WHERE `mac` = ?";
final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 1);
int _argIndex = 1;
final long _tmp = Converters.INSTANCE.persistMacAddress(mac);
_statement.bindLong(_argIndex, _tmp);
__db.assertNotSuspendingTransaction();
final Cursor _cursor = DBUtil.query(__db, _statement, false, null);
try {
final int _cursorIndexOfMac = CursorUtil.getColumnIndexOrThrow(_cursor, "mac");
final int _cursorIndexOfNickname = CursorUtil.getColumnIndexOrThrow(_cursor, "nickname");
final int _cursorIndexOfBlocked = CursorUtil.getColumnIndexOrThrow(_cursor, "blocked");
final int _cursorIndexOfMacLookupPending = CursorUtil.getColumnIndexOrThrow(_cursor, "macLookupPending");
final ClientRecord _result;
if (_cursor.moveToFirst()) {
final MacAddress _tmpMac;
final long _tmp_1;
_tmp_1 = _cursor.getLong(_cursorIndexOfMac);
_tmpMac = Converters.INSTANCE.unpersistMacAddress(_tmp_1);
final CharSequence _tmpNickname;
final byte[] _tmp_2;
if (_cursor.isNull(_cursorIndexOfNickname)) {
_tmp_2 = null;
} else {
_tmp_2 = _cursor.getBlob(_cursorIndexOfNickname);
}
_tmpNickname = Converters.INSTANCE.unpersistCharSequence(_tmp_2);
final boolean _tmpBlocked;
final int _tmp_3;
_tmp_3 = _cursor.getInt(_cursorIndexOfBlocked);
_tmpBlocked = _tmp_3 != 0;
final boolean _tmpMacLookupPending;
final int _tmp_4;
_tmp_4 = _cursor.getInt(_cursorIndexOfMacLookupPending);
_tmpMacLookupPending = _tmp_4 != 0;
_result = new ClientRecord(_tmpMac,_tmpNickname,_tmpBlocked,_tmpMacLookupPending);
} else {
_result = null;
}
return _result;
} finally {
_cursor.close();
_statement.release();
}
}
@Override
protected Object lookup(final MacAddress mac,
final Continuation<? super ClientRecord> $completion) {
final String _sql = "SELECT * FROM `ClientRecord` WHERE `mac` = ?";
final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 1);
int _argIndex = 1;
final long _tmp = Converters.INSTANCE.persistMacAddress(mac);
_statement.bindLong(_argIndex, _tmp);
final CancellationSignal _cancellationSignal = DBUtil.createCancellationSignal();
return CoroutinesRoom.execute(__db, false, _cancellationSignal, new Callable<ClientRecord>() {
@Override
@Nullable
public ClientRecord call() throws Exception {
final Cursor _cursor = DBUtil.query(__db, _statement, false, null);
try {
final int _cursorIndexOfMac = CursorUtil.getColumnIndexOrThrow(_cursor, "mac");
final int _cursorIndexOfNickname = CursorUtil.getColumnIndexOrThrow(_cursor, "nickname");
final int _cursorIndexOfBlocked = CursorUtil.getColumnIndexOrThrow(_cursor, "blocked");
final int _cursorIndexOfMacLookupPending = CursorUtil.getColumnIndexOrThrow(_cursor, "macLookupPending");
final ClientRecord _result;
if (_cursor.moveToFirst()) {
final MacAddress _tmpMac;
final long _tmp_1;
_tmp_1 = _cursor.getLong(_cursorIndexOfMac);
_tmpMac = Converters.INSTANCE.unpersistMacAddress(_tmp_1);
final CharSequence _tmpNickname;
final byte[] _tmp_2;
if (_cursor.isNull(_cursorIndexOfNickname)) {
_tmp_2 = null;
} else {
_tmp_2 = _cursor.getBlob(_cursorIndexOfNickname);
}
_tmpNickname = Converters.INSTANCE.unpersistCharSequence(_tmp_2);
final boolean _tmpBlocked;
final int _tmp_3;
_tmp_3 = _cursor.getInt(_cursorIndexOfBlocked);
_tmpBlocked = _tmp_3 != 0;
final boolean _tmpMacLookupPending;
final int _tmp_4;
_tmp_4 = _cursor.getInt(_cursorIndexOfMacLookupPending);
_tmpMacLookupPending = _tmp_4 != 0;
_result = new ClientRecord(_tmpMac,_tmpNickname,_tmpBlocked,_tmpMacLookupPending);
} else {
_result = null;
}
return _result;
} finally {
_cursor.close();
_statement.release();
}
}
}, $completion);
}
@Override
protected LiveData<ClientRecord> lookupSync(final MacAddress mac) {
final String _sql = "SELECT * FROM `ClientRecord` WHERE `mac` = ?";
final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 1);
int _argIndex = 1;
final long _tmp = Converters.INSTANCE.persistMacAddress(mac);
_statement.bindLong(_argIndex, _tmp);
return __db.getInvalidationTracker().createLiveData(new String[] {"ClientRecord"}, false, new Callable<ClientRecord>() {
@Override
@Nullable
public ClientRecord call() throws Exception {
final Cursor _cursor = DBUtil.query(__db, _statement, false, null);
try {
final int _cursorIndexOfMac = CursorUtil.getColumnIndexOrThrow(_cursor, "mac");
final int _cursorIndexOfNickname = CursorUtil.getColumnIndexOrThrow(_cursor, "nickname");
final int _cursorIndexOfBlocked = CursorUtil.getColumnIndexOrThrow(_cursor, "blocked");
final int _cursorIndexOfMacLookupPending = CursorUtil.getColumnIndexOrThrow(_cursor, "macLookupPending");
final ClientRecord _result;
if (_cursor.moveToFirst()) {
final MacAddress _tmpMac;
final long _tmp_1;
_tmp_1 = _cursor.getLong(_cursorIndexOfMac);
_tmpMac = Converters.INSTANCE.unpersistMacAddress(_tmp_1);
final CharSequence _tmpNickname;
final byte[] _tmp_2;
if (_cursor.isNull(_cursorIndexOfNickname)) {
_tmp_2 = null;
} else {
_tmp_2 = _cursor.getBlob(_cursorIndexOfNickname);
}
_tmpNickname = Converters.INSTANCE.unpersistCharSequence(_tmp_2);
final boolean _tmpBlocked;
final int _tmp_3;
_tmp_3 = _cursor.getInt(_cursorIndexOfBlocked);
_tmpBlocked = _tmp_3 != 0;
final boolean _tmpMacLookupPending;
final int _tmp_4;
_tmp_4 = _cursor.getInt(_cursorIndexOfMacLookupPending);
_tmpMacLookupPending = _tmp_4 != 0;
_result = new ClientRecord(_tmpMac,_tmpNickname,_tmpBlocked,_tmpMacLookupPending);
} else {
_result = null;
}
return _result;
} finally {
_cursor.close();
}
}
@Override
protected void finalize() {
_statement.release();
}
});
}
@NonNull
public static List<Class<?>> getRequiredConverters() {
return Collections.emptyList();
}
}

View File

@@ -0,0 +1,156 @@
package hanson.xyz.vpnhotspotmod.room;
import android.database.Cursor;
import android.net.MacAddress;
import android.os.CancellationSignal;
import androidx.annotation.NonNull;
import androidx.room.CoroutinesRoom;
import androidx.room.EntityInsertionAdapter;
import androidx.room.RoomDatabase;
import androidx.room.RoomSQLiteQuery;
import androidx.room.util.DBUtil;
import androidx.sqlite.db.SupportSQLiteStatement;
import java.lang.Class;
import java.lang.Exception;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import javax.annotation.processing.Generated;
import kotlin.coroutines.Continuation;
@Generated("androidx.room.RoomProcessor")
@SuppressWarnings({"unchecked", "deprecation"})
public final class TrafficRecord_Dao_Impl extends TrafficRecord.Dao {
private final RoomDatabase __db;
private final EntityInsertionAdapter<TrafficRecord> __insertionAdapterOfTrafficRecord;
public TrafficRecord_Dao_Impl(@NonNull final RoomDatabase __db) {
this.__db = __db;
this.__insertionAdapterOfTrafficRecord = new EntityInsertionAdapter<TrafficRecord>(__db) {
@Override
@NonNull
protected String createQuery() {
return "INSERT OR ABORT INTO `TrafficRecord` (`id`,`timestamp`,`mac`,`ip`,`upstream`,`downstream`,`sentPackets`,`sentBytes`,`receivedPackets`,`receivedBytes`,`previousId`) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
}
@Override
protected void bind(@NonNull final SupportSQLiteStatement statement,
@NonNull final TrafficRecord entity) {
if (entity.getId() == null) {
statement.bindNull(1);
} else {
statement.bindLong(1, entity.getId());
}
statement.bindLong(2, entity.getTimestamp());
final long _tmp = Converters.INSTANCE.persistMacAddress(entity.getMac());
statement.bindLong(3, _tmp);
final byte[] _tmp_1 = Converters.INSTANCE.persistInetAddress(entity.getIp());
if (_tmp_1 == null) {
statement.bindNull(4);
} else {
statement.bindBlob(4, _tmp_1);
}
if (entity.getUpstream() == null) {
statement.bindNull(5);
} else {
statement.bindString(5, entity.getUpstream());
}
if (entity.getDownstream() == null) {
statement.bindNull(6);
} else {
statement.bindString(6, entity.getDownstream());
}
statement.bindLong(7, entity.getSentPackets());
statement.bindLong(8, entity.getSentBytes());
statement.bindLong(9, entity.getReceivedPackets());
statement.bindLong(10, entity.getReceivedBytes());
if (entity.getPreviousId() == null) {
statement.bindNull(11);
} else {
statement.bindLong(11, entity.getPreviousId());
}
}
};
}
@Override
protected long insertInternal(final TrafficRecord value) {
__db.assertNotSuspendingTransaction();
__db.beginTransaction();
try {
final long _result = __insertionAdapterOfTrafficRecord.insertAndReturnId(value);
__db.setTransactionSuccessful();
return _result;
} finally {
__db.endTransaction();
}
}
@Override
public Object queryStats(final MacAddress mac,
final Continuation<? super ClientStats> $completion) {
final String _sql = "\n"
+ " SELECT MIN(TrafficRecord.timestamp) AS timestamp,\n"
+ " COUNT(TrafficRecord.id) AS count,\n"
+ " SUM(TrafficRecord.sentPackets) AS sentPackets,\n"
+ " SUM(TrafficRecord.sentBytes) AS sentBytes,\n"
+ " SUM(TrafficRecord.receivedPackets) AS receivedPackets,\n"
+ " SUM(TrafficRecord.receivedBytes) AS receivedBytes\n"
+ " FROM TrafficRecord LEFT JOIN TrafficRecord AS Next ON TrafficRecord.id = Next.previousId\n"
+ " /* We only want to find the last record for each chain so that we don't double count */\n"
+ " WHERE TrafficRecord.mac = ? AND Next.id IS NULL\n"
+ " ";
final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 1);
int _argIndex = 1;
final long _tmp = Converters.INSTANCE.persistMacAddress(mac);
_statement.bindLong(_argIndex, _tmp);
final CancellationSignal _cancellationSignal = DBUtil.createCancellationSignal();
return CoroutinesRoom.execute(__db, false, _cancellationSignal, new Callable<ClientStats>() {
@Override
@NonNull
public ClientStats call() throws Exception {
final Cursor _cursor = DBUtil.query(__db, _statement, false, null);
try {
final int _cursorIndexOfTimestamp = 0;
final int _cursorIndexOfCount = 1;
final int _cursorIndexOfSentPackets = 2;
final int _cursorIndexOfSentBytes = 3;
final int _cursorIndexOfReceivedPackets = 4;
final int _cursorIndexOfReceivedBytes = 5;
final ClientStats _result;
if (_cursor.moveToFirst()) {
final long _tmpTimestamp;
_tmpTimestamp = _cursor.getLong(_cursorIndexOfTimestamp);
final long _tmpCount;
_tmpCount = _cursor.getLong(_cursorIndexOfCount);
final long _tmpSentPackets;
_tmpSentPackets = _cursor.getLong(_cursorIndexOfSentPackets);
final long _tmpSentBytes;
_tmpSentBytes = _cursor.getLong(_cursorIndexOfSentBytes);
final long _tmpReceivedPackets;
_tmpReceivedPackets = _cursor.getLong(_cursorIndexOfReceivedPackets);
final long _tmpReceivedBytes;
_tmpReceivedBytes = _cursor.getLong(_cursorIndexOfReceivedBytes);
_result = new ClientStats(_tmpTimestamp,_tmpCount,_tmpSentPackets,_tmpSentBytes,_tmpReceivedPackets,_tmpReceivedBytes);
} else {
_result = null;
}
return _result;
} finally {
_cursor.close();
_statement.release();
}
}
}, $completion);
}
@NonNull
public static List<Class<?>> getRequiredConverters() {
return Collections.emptyList();
}
}

View File

@@ -0,0 +1,7 @@
[
{
"group": "absent",
"version": "absent",
"name": "absent"
}
]

View File

@@ -0,0 +1 @@
0:125 Debug License Info

View File

@@ -0,0 +1 @@
Licenses are only provided in build variants (e.g. release) where the Android Gradle Plugin generates an app dependency list.

View File

@@ -0,0 +1 @@
1:13108846109:android:63120dcb2e900ed0

View File

@@ -0,0 +1 @@
{"room-compiler-2.6.1.jar (androidx.room:room-compiler:2.6.1)":"KSP_PROCESSOR","databinding-compiler-8.2.0.jar (androidx.databinding:databinding-compiler:8.2.0)":"INCREMENTAL_AP"}

View File

@@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "hanson.xyz.vpnhotspotmod",
"variantName": "freedomDebug",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1005,
"versionName": "2.16.5",
"outputFile": "mobile-freedom-debug.apk"
}
],
"elementType": "File"
}

View File

@@ -0,0 +1,2 @@
#- File Locator -
listingFile=../../../outputs/apk/freedom/debug/output-metadata.json

View File

@@ -0,0 +1,2 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.2.0

View File

@@ -0,0 +1,10 @@
{
"version": 3,
"artifactType": {
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "hanson.xyz.vpnhotspotmod",
"variantName": "freedomDebug",
"elements": []
}

View File

@@ -0,0 +1 @@
{"version":5,"adapterMethods":{"android:src":[[{"viewType":"android.widget.ImageView","valueType":"int"},{"type":"hanson.xyz.vpnhotspotmod.util.UtilsKt","method":"setImageResource","requiresOldValue":false,"isStatic":true,"componentClass":null}]],"android:visibility":[[{"viewType":"android.view.View","valueType":"boolean"},{"type":"hanson.xyz.vpnhotspotmod.util.UtilsKt","method":"setVisibility","requiresOldValue":false,"isStatic":true,"componentClass":null}]]},"renamedMethods":{},"conversionMethods":{},"untaggableTypes":{},"multiValueAdapters":{},"inverseAdapters":{},"inverseMethods":{},"twoWayMethods":{},"useAndroidX":true}

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_main" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/activity_main.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_main_0" view="LinearLayout"><Expressions/><location startLine="1" startOffset="0" endLine="36" endOffset="14"/></Target><Target id="@+id/toolbar" view="com.google.android.material.appbar.MaterialToolbar"><Expressions/><location startLine="10" startOffset="4" endLine="16" endOffset="37"/></Target><Target id="@+id/fragmentHolder" view="androidx.fragment.app.FragmentContainerView"><Expressions/><location startLine="23" startOffset="8" endLine="26" endOffset="49"/></Target><Target id="@+id/navigation" view="com.google.android.material.bottomnavigation.BottomNavigationView"><Expressions/><location startLine="30" startOffset="4" endLine="34" endOffset="36"/></Target></Targets></Layout>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_clients" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_clients.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="androidx.swiperefreshlayout.widget.SwipeRefreshLayout" rootNodeViewId="@+id/swipeRefresher"><Targets><Target id="@+id/swipeRefresher" tag="layout/fragment_clients_0" view="androidx.swiperefreshlayout.widget.SwipeRefreshLayout"><Expressions/><location startLine="1" startOffset="0" endLine="16" endOffset="55"/></Target><Target id="@+id/clients" view="androidx.recyclerview.widget.RecyclerView"><Expressions/><location startLine="8" startOffset="4" endLine="15" endOffset="49"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_ebeg" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_ebeg.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.ScrollView"><Targets><Target tag="layout/fragment_ebeg_0" view="ScrollView"><Expressions/><location startLine="6" startOffset="0" endLine="86" endOffset="12"/></Target><Target id="@+id/donations__google" view="LinearLayout"><Expressions/><location startLine="28" startOffset="8" endLine="77" endOffset="22"/></Target><Target id="@+id/donations__google_android_market_spinner" view="Spinner"><Expressions/><location startLine="59" startOffset="16" endLine="66" endOffset="84"/></Target><Target id="@+id/donations__google_android_market_donate_button" view="Button"><Expressions/><location startLine="68" startOffset="16" endLine="74" endOffset="91"/></Target><Target id="@+id/donations__more_donate_button" view="Button"><Expressions/><location startLine="79" startOffset="8" endLine="83" endOffset="61"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_tethering" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_tethering.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="androidx.recyclerview.widget.RecyclerView" rootNodeViewId="@+id/interfaces"><Targets><Target id="@+id/interfaces" tag="layout/fragment_tethering_0" view="androidx.recyclerview.widget.RecyclerView"><Expressions/><location startLine="1" startOffset="0" endLine="9" endOffset="48"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_client" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_client.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.client.Client" name="client"><location startLine="5" startOffset="8" endLine="7" endOffset="58"/></Variables><Variables declared="true" type="hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate" name="rate"><location startLine="8" startOffset="8" endLine="10" endOffset="79"/></Variables><Targets><Target tag="layout/listitem_client_0" view="LinearLayout"><Expressions/><location startLine="13" startOffset="4" endLine="61" endOffset="18"/></Target><Target tag="binding_1" view="ImageView"><Expressions><Expression text="client.icon" attribute="android:src"><Location startLine="25" startOffset="12" endLine="25" endOffset="39"/><TwoWay>false</TwoWay><ValueLocation startLine="25" startOffset="27" endLine="25" endOffset="37"/></Expression></Expressions><location startLine="20" startOffset="8" endLine="27" endOffset="57"/></Target><Target tag="binding_2" view="hanson.xyz.vpnhotspotmod.widget.LinkTextView"><Expressions><Expression text="client.title" attribute="android:text"><Location startLine="42" startOffset="16" endLine="42" endOffset="45"/><TwoWay>false</TwoWay><ValueLocation startLine="42" startOffset="32" endLine="42" endOffset="43"/></Expression><Expression text="client.titleSelectable" attribute="android:textIsSelectable"><Location startLine="44" startOffset="16" endLine="44" endOffset="67"/><TwoWay>false</TwoWay><ValueLocation startLine="44" startOffset="44" endLine="44" endOffset="65"/></Expression></Expressions><location startLine="39" startOffset="12" endLine="45" endOffset="58"/></Target><Target id="@+id/description" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="client.description" attribute="android:text"><Location startLine="51" startOffset="16" endLine="51" endOffset="51"/><TwoWay>false</TwoWay><ValueLocation startLine="51" startOffset="32" endLine="51" endOffset="49"/></Expression></Expressions><location startLine="47" startOffset="12" endLine="53" endOffset="106"/></Target><Target tag="binding_4" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="rate.toString()" attribute="android:text"><Location startLine="58" startOffset="16" endLine="58" endOffset="48"/><TwoWay>false</TwoWay><ValueLocation startLine="58" startOffset="32" endLine="58" endOffset="46"/></Expression></Expressions><location startLine="55" startOffset="12" endLine="59" endOffset="54"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_interface" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_interface.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.Data" name="data"><location startLine="5" startOffset="8" endLine="7" endOffset="56"/></Variables><Targets><Target tag="layout/listitem_interface_0" view="LinearLayout"><Expressions/><location startLine="9" startOffset="4" endLine="66" endOffset="18"/></Target><Target tag="binding_1" view="ImageView"><Expressions><Expression text="data.icon" attribute="android:src"><Location startLine="22" startOffset="12" endLine="22" endOffset="37"/><TwoWay>false</TwoWay><ValueLocation startLine="22" startOffset="27" endLine="22" endOffset="35"/></Expression></Expressions><location startLine="17" startOffset="8" endLine="24" endOffset="57"/></Target><Target tag="binding_2" view="TextView"><Expressions><Expression text="data.title" attribute="android:text"><Location startLine="42" startOffset="16" endLine="42" endOffset="43"/><TwoWay>false</TwoWay><ValueLocation startLine="42" startOffset="32" endLine="42" endOffset="41"/></Expression></Expressions><location startLine="39" startOffset="12" endLine="44" endOffset="35"/></Target><Target id="@+id/text" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="data.text" attribute="android:text"><Location startLine="50" startOffset="16" endLine="50" endOffset="42"/><TwoWay>false</TwoWay><ValueLocation startLine="50" startOffset="32" endLine="50" endOffset="40"/></Expression><Expression text="data.selectable" attribute="android:textIsSelectable"><Location startLine="51" startOffset="16" endLine="51" endOffset="60"/><TwoWay>false</TwoWay><ValueLocation startLine="51" startOffset="44" endLine="51" endOffset="58"/></Expression></Expressions><location startLine="46" startOffset="12" endLine="52" endOffset="64"/></Target><Target tag="binding_4" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions><Expression text="data.active" attribute="android:checked"><Location startLine="59" startOffset="12" endLine="59" endOffset="43"/><TwoWay>false</TwoWay><ValueLocation startLine="59" startOffset="31" endLine="59" endOffset="41"/></Expression></Expressions><location startLine="55" startOffset="8" endLine="64" endOffset="46"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_manage" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_manage.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.ManageBar.Data" name="data"><location startLine="4" startOffset="8" endLine="6" endOffset="66"/></Variables><Targets><Target tag="layout/listitem_manage_0" view="LinearLayout"><Expressions/><location startLine="8" startOffset="4" endLine="48" endOffset="18"/></Target><Target id="@+id/offloadEnabled" tag="binding_1" view="TextView"><Expressions><Expression text="data.offloadEnabled" attribute="android:visibility"><Location startLine="44" startOffset="16" endLine="44" endOffset="58"/><TwoWay>false</TwoWay><ValueLocation startLine="44" startOffset="38" endLine="44" endOffset="56"/></Expression></Expressions><location startLine="40" startOffset="12" endLine="45" endOffset="72"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_repeater" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_repeater.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data" name="data"><location startLine="6" startOffset="8" endLine="8" endOffset="72"/></Variables><Imports type="hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper" name="WifiP2pManagerHelper"><location startLine="5" startOffset="8" endLine="5" endOffset="78"/></Imports><Targets><Target tag="layout/listitem_repeater_0" view="LinearLayout"><Expressions/><location startLine="10" startOffset="4" endLine="106" endOffset="18"/></Target><Target tag="binding_1" view="LinearLayout"><Expressions><Expression text="_ -&gt; data.toggle()" attribute="android:onClick"><Location startLine="21" startOffset="12" endLine="21" endOffset="50"/><TwoWay>false</TwoWay><ValueLocation startLine="21" startOffset="31" endLine="21" endOffset="48"/></Expression></Expressions><location startLine="14" startOffset="8" endLine="71" endOffset="22"/></Target><Target tag="binding_2" view="TextView"><Expressions><Expression text="data.title" attribute="android:text"><Location startLine="47" startOffset="20" endLine="47" endOffset="47"/><TwoWay>false</TwoWay><ValueLocation startLine="47" startOffset="36" endLine="47" endOffset="45"/></Expression></Expressions><location startLine="44" startOffset="16" endLine="48" endOffset="85"/></Target><Target id="@+id/addresses" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="data.addresses" attribute="android:text"><Location startLine="54" startOffset="20" endLine="54" endOffset="51"/><TwoWay>false</TwoWay><ValueLocation startLine="54" startOffset="36" endLine="54" endOffset="49"/></Expression></Expressions><location startLine="50" startOffset="16" endLine="56" endOffset="68"/></Target><Target tag="binding_4" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions><Expression text="data.serviceStarted" attribute="android:checked"><Location startLine="63" startOffset="16" endLine="63" endOffset="55"/><TwoWay>false</TwoWay><ValueLocation startLine="63" startOffset="35" endLine="63" endOffset="53"/></Expression><Expression text="data.switchEnabled" attribute="android:enabled"><Location startLine="64" startOffset="16" endLine="64" endOffset="54"/><TwoWay>false</TwoWay><ValueLocation startLine="64" startOffset="35" endLine="64" endOffset="52"/></Expression></Expressions><location startLine="59" startOffset="12" endLine="69" endOffset="50"/></Target><Target tag="binding_5" view="LinearLayout"><Expressions><Expression text="_ -&gt; data.wps()" attribute="android:onClick"><Location startLine="79" startOffset="12" endLine="79" endOffset="47"/><TwoWay>false</TwoWay><ValueLocation startLine="79" startOffset="31" endLine="79" endOffset="45"/></Expression><Expression text="data.serviceStarted &amp;&amp; WifiP2pManagerHelper.getStartWps() != null" attribute="android:visibility"><Location startLine="80" startOffset="12" endLine="80" endOffset="108"/><TwoWay>false</TwoWay><ValueLocation startLine="80" startOffset="30" endLine="80" endOffset="106"/></Expression></Expressions><location startLine="73" startOffset="8" endLine="105" endOffset="22"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_material" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_material.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/preference_material_0" view="LinearLayout"><Expressions/><location startLine="18" startOffset="0" endLine="70" endOffset="14"/></Target><Target tag="layout/preference_material_0" include="image_frame"><Expressions/><location startLine="30" startOffset="4" endLine="30" endOffset="42"/></Target><Target id="@android:id/title" view="TextView"><Expressions/><location startLine="39" startOffset="8" endLine="44" endOffset="74"/></Target><Target id="@android:id/summary" view="TextView"><Expressions/><location startLine="46" startOffset="8" endLine="56" endOffset="54"/></Target><Target id="@android:id/widget_frame" view="LinearLayout"><Expressions/><location startLine="61" startOffset="4" endLine="68" endOffset="39"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_widget_edittext_autocomplete" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_widget_edittext_autocomplete.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="com.google.android.material.textfield.TextInputLayout"><Targets><Target tag="layout/preference_widget_edittext_autocomplete_0" view="com.google.android.material.textfield.TextInputLayout"><Expressions/><location startLine="1" startOffset="0" endLine="11" endOffset="55"/></Target><Target id="@android:id/edit" view="hanson.xyz.vpnhotspotmod.widget.AlwaysAutoCompleteEditText"><Expressions/><location startLine="6" startOffset="4" endLine="10" endOffset="52"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_widget_material_switch" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_widget_material_switch.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="com.google.android.material.materialswitch.MaterialSwitch" rootNodeViewId="@+id/switchWidget"><Targets><Target id="@+id/switchWidget" tag="layout/preference_widget_material_switch_0" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions/><location startLine="20" startOffset="0" endLine="27" endOffset="31"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_main" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/activity_main.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_main_0" view="LinearLayout"><Expressions/><location startLine="1" startOffset="0" endLine="36" endOffset="14"/></Target><Target id="@+id/toolbar" view="com.google.android.material.appbar.MaterialToolbar"><Expressions/><location startLine="10" startOffset="4" endLine="16" endOffset="37"/></Target><Target id="@+id/fragmentHolder" view="androidx.fragment.app.FragmentContainerView"><Expressions/><location startLine="23" startOffset="8" endLine="26" endOffset="49"/></Target><Target id="@+id/navigation" view="com.google.android.material.bottomnavigation.BottomNavigationView"><Expressions/><location startLine="30" startOffset="4" endLine="34" endOffset="36"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_clients" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_clients.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="androidx.swiperefreshlayout.widget.SwipeRefreshLayout" rootNodeViewId="@+id/swipeRefresher"><Targets><Target id="@+id/swipeRefresher" tag="layout/fragment_clients_0" view="androidx.swiperefreshlayout.widget.SwipeRefreshLayout"><Expressions/><location startLine="1" startOffset="0" endLine="16" endOffset="55"/></Target><Target id="@+id/clients" view="androidx.recyclerview.widget.RecyclerView"><Expressions/><location startLine="8" startOffset="4" endLine="15" endOffset="49"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_ebeg" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_ebeg.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.ScrollView"><Targets><Target tag="layout/fragment_ebeg_0" view="ScrollView"><Expressions/><location startLine="6" startOffset="0" endLine="86" endOffset="12"/></Target><Target id="@+id/donations__google" view="LinearLayout"><Expressions/><location startLine="28" startOffset="8" endLine="77" endOffset="22"/></Target><Target id="@+id/donations__google_android_market_spinner" view="Spinner"><Expressions/><location startLine="59" startOffset="16" endLine="66" endOffset="84"/></Target><Target id="@+id/donations__google_android_market_donate_button" view="Button"><Expressions/><location startLine="68" startOffset="16" endLine="74" endOffset="91"/></Target><Target id="@+id/donations__more_donate_button" view="Button"><Expressions/><location startLine="79" startOffset="8" endLine="83" endOffset="61"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="fragment_tethering" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/fragment_tethering.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="androidx.recyclerview.widget.RecyclerView" rootNodeViewId="@+id/interfaces"><Targets><Target id="@+id/interfaces" tag="layout/fragment_tethering_0" view="androidx.recyclerview.widget.RecyclerView"><Expressions/><location startLine="1" startOffset="0" endLine="9" endOffset="48"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_client" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_client.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.client.Client" name="client"><location startLine="5" startOffset="8" endLine="7" endOffset="58"/></Variables><Variables declared="true" type="hanson.xyz.vpnhotspotmod.client.ClientsFragment.TrafficRate" name="rate"><location startLine="8" startOffset="8" endLine="10" endOffset="79"/></Variables><Targets><Target tag="layout/listitem_client_0" view="LinearLayout"><Expressions/><location startLine="13" startOffset="4" endLine="61" endOffset="18"/></Target><Target tag="binding_1" view="ImageView"><Expressions><Expression text="client.icon" attribute="android:src"><Location startLine="25" startOffset="12" endLine="25" endOffset="39"/><TwoWay>false</TwoWay><ValueLocation startLine="25" startOffset="27" endLine="25" endOffset="37"/></Expression></Expressions><location startLine="20" startOffset="8" endLine="27" endOffset="57"/></Target><Target tag="binding_2" view="hanson.xyz.vpnhotspotmod.widget.LinkTextView"><Expressions><Expression text="client.title" attribute="android:text"><Location startLine="42" startOffset="16" endLine="42" endOffset="45"/><TwoWay>false</TwoWay><ValueLocation startLine="42" startOffset="32" endLine="42" endOffset="43"/></Expression><Expression text="client.titleSelectable" attribute="android:textIsSelectable"><Location startLine="44" startOffset="16" endLine="44" endOffset="67"/><TwoWay>false</TwoWay><ValueLocation startLine="44" startOffset="44" endLine="44" endOffset="65"/></Expression></Expressions><location startLine="39" startOffset="12" endLine="45" endOffset="58"/></Target><Target id="@+id/description" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="client.description" attribute="android:text"><Location startLine="51" startOffset="16" endLine="51" endOffset="51"/><TwoWay>false</TwoWay><ValueLocation startLine="51" startOffset="32" endLine="51" endOffset="49"/></Expression></Expressions><location startLine="47" startOffset="12" endLine="53" endOffset="106"/></Target><Target tag="binding_4" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="rate.toString()" attribute="android:text"><Location startLine="58" startOffset="16" endLine="58" endOffset="48"/><TwoWay>false</TwoWay><ValueLocation startLine="58" startOffset="32" endLine="58" endOffset="46"/></Expression></Expressions><location startLine="55" startOffset="12" endLine="59" endOffset="54"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_interface" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_interface.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.Data" name="data"><location startLine="5" startOffset="8" endLine="7" endOffset="56"/></Variables><Targets><Target tag="layout/listitem_interface_0" view="LinearLayout"><Expressions/><location startLine="9" startOffset="4" endLine="66" endOffset="18"/></Target><Target tag="binding_1" view="ImageView"><Expressions><Expression text="data.icon" attribute="android:src"><Location startLine="22" startOffset="12" endLine="22" endOffset="37"/><TwoWay>false</TwoWay><ValueLocation startLine="22" startOffset="27" endLine="22" endOffset="35"/></Expression></Expressions><location startLine="17" startOffset="8" endLine="24" endOffset="57"/></Target><Target tag="binding_2" view="TextView"><Expressions><Expression text="data.title" attribute="android:text"><Location startLine="42" startOffset="16" endLine="42" endOffset="43"/><TwoWay>false</TwoWay><ValueLocation startLine="42" startOffset="32" endLine="42" endOffset="41"/></Expression></Expressions><location startLine="39" startOffset="12" endLine="44" endOffset="35"/></Target><Target id="@+id/text" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="data.text" attribute="android:text"><Location startLine="50" startOffset="16" endLine="50" endOffset="42"/><TwoWay>false</TwoWay><ValueLocation startLine="50" startOffset="32" endLine="50" endOffset="40"/></Expression><Expression text="data.selectable" attribute="android:textIsSelectable"><Location startLine="51" startOffset="16" endLine="51" endOffset="60"/><TwoWay>false</TwoWay><ValueLocation startLine="51" startOffset="44" endLine="51" endOffset="58"/></Expression></Expressions><location startLine="46" startOffset="12" endLine="52" endOffset="64"/></Target><Target tag="binding_4" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions><Expression text="data.active" attribute="android:checked"><Location startLine="59" startOffset="12" endLine="59" endOffset="43"/><TwoWay>false</TwoWay><ValueLocation startLine="59" startOffset="31" endLine="59" endOffset="41"/></Expression></Expressions><location startLine="55" startOffset="8" endLine="64" endOffset="46"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_manage" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_manage.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.ManageBar.Data" name="data"><location startLine="4" startOffset="8" endLine="6" endOffset="66"/></Variables><Targets><Target tag="layout/listitem_manage_0" view="LinearLayout"><Expressions/><location startLine="8" startOffset="4" endLine="48" endOffset="18"/></Target><Target id="@+id/offloadEnabled" tag="binding_1" view="TextView"><Expressions><Expression text="data.offloadEnabled" attribute="android:visibility"><Location startLine="44" startOffset="16" endLine="44" endOffset="58"/><TwoWay>false</TwoWay><ValueLocation startLine="44" startOffset="38" endLine="44" endOffset="56"/></Expression></Expressions><location startLine="40" startOffset="12" endLine="45" endOffset="72"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="listitem_repeater" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/listitem_repeater.xml" directory="layout" isMerge="false" isBindingData="true" rootNodeType="android.widget.LinearLayout"><Variables declared="true" type="hanson.xyz.vpnhotspotmod.manage.RepeaterManager.Data" name="data"><location startLine="6" startOffset="8" endLine="8" endOffset="72"/></Variables><Imports type="hanson.xyz.vpnhotspotmod.net.wifi.WifiP2pManagerHelper" name="WifiP2pManagerHelper"><location startLine="5" startOffset="8" endLine="5" endOffset="78"/></Imports><Targets><Target tag="layout/listitem_repeater_0" view="LinearLayout"><Expressions/><location startLine="10" startOffset="4" endLine="106" endOffset="18"/></Target><Target tag="binding_1" view="LinearLayout"><Expressions><Expression text="_ -&gt; data.toggle()" attribute="android:onClick"><Location startLine="21" startOffset="12" endLine="21" endOffset="50"/><TwoWay>false</TwoWay><ValueLocation startLine="21" startOffset="31" endLine="21" endOffset="48"/></Expression></Expressions><location startLine="14" startOffset="8" endLine="71" endOffset="22"/></Target><Target tag="binding_2" view="TextView"><Expressions><Expression text="data.title" attribute="android:text"><Location startLine="47" startOffset="20" endLine="47" endOffset="47"/><TwoWay>false</TwoWay><ValueLocation startLine="47" startOffset="36" endLine="47" endOffset="45"/></Expression></Expressions><location startLine="44" startOffset="16" endLine="48" endOffset="85"/></Target><Target id="@+id/addresses" tag="binding_3" view="hanson.xyz.vpnhotspotmod.widget.AutoCollapseTextView"><Expressions><Expression text="data.addresses" attribute="android:text"><Location startLine="54" startOffset="20" endLine="54" endOffset="51"/><TwoWay>false</TwoWay><ValueLocation startLine="54" startOffset="36" endLine="54" endOffset="49"/></Expression></Expressions><location startLine="50" startOffset="16" endLine="56" endOffset="68"/></Target><Target tag="binding_4" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions><Expression text="data.serviceStarted" attribute="android:checked"><Location startLine="63" startOffset="16" endLine="63" endOffset="55"/><TwoWay>false</TwoWay><ValueLocation startLine="63" startOffset="35" endLine="63" endOffset="53"/></Expression><Expression text="data.switchEnabled" attribute="android:enabled"><Location startLine="64" startOffset="16" endLine="64" endOffset="54"/><TwoWay>false</TwoWay><ValueLocation startLine="64" startOffset="35" endLine="64" endOffset="52"/></Expression></Expressions><location startLine="59" startOffset="12" endLine="69" endOffset="50"/></Target><Target tag="binding_5" view="LinearLayout"><Expressions><Expression text="_ -&gt; data.wps()" attribute="android:onClick"><Location startLine="79" startOffset="12" endLine="79" endOffset="47"/><TwoWay>false</TwoWay><ValueLocation startLine="79" startOffset="31" endLine="79" endOffset="45"/></Expression><Expression text="data.serviceStarted &amp;&amp; WifiP2pManagerHelper.getStartWps() != null" attribute="android:visibility"><Location startLine="80" startOffset="12" endLine="80" endOffset="108"/><TwoWay>false</TwoWay><ValueLocation startLine="80" startOffset="30" endLine="80" endOffset="106"/></Expression></Expressions><location startLine="73" startOffset="8" endLine="105" endOffset="22"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_material" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_material.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/preference_material_0" view="LinearLayout"><Expressions/><location startLine="18" startOffset="0" endLine="70" endOffset="14"/></Target><Target tag="layout/preference_material_0" include="image_frame"><Expressions/><location startLine="30" startOffset="4" endLine="30" endOffset="42"/></Target><Target id="@android:id/title" view="TextView"><Expressions/><location startLine="39" startOffset="8" endLine="44" endOffset="74"/></Target><Target id="@android:id/summary" view="TextView"><Expressions/><location startLine="46" startOffset="8" endLine="56" endOffset="54"/></Target><Target id="@android:id/widget_frame" view="LinearLayout"><Expressions/><location startLine="61" startOffset="4" endLine="68" endOffset="39"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_widget_edittext_autocomplete" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_widget_edittext_autocomplete.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="com.google.android.material.textfield.TextInputLayout"><Targets><Target tag="layout/preference_widget_edittext_autocomplete_0" view="com.google.android.material.textfield.TextInputLayout"><Expressions/><location startLine="1" startOffset="0" endLine="11" endOffset="55"/></Target><Target id="@android:id/edit" view="hanson.xyz.vpnhotspotmod.widget.AlwaysAutoCompleteEditText"><Expressions/><location startLine="6" startOffset="4" endLine="10" endOffset="52"/></Target></Targets></Layout>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="preference_widget_material_switch" modulePackage="hanson.xyz.vpnhotspotmod" filePath="mobile/src/main/res/layout/preference_widget_material_switch.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="com.google.android.material.materialswitch.MaterialSwitch" rootNodeViewId="@+id/switchWidget"><Targets><Target id="@+id/switchWidget" tag="layout/preference_widget_material_switch_0" view="com.google.android.material.materialswitch.MaterialSwitch"><Expressions/><location startLine="20" startOffset="0" endLine="27" endOffset="31"/></Target></Targets></Layout>

Some files were not shown because too many files have changed in this diff Show More