From 121a4bec96d2f9b842c6d393d2b9c6356a9a4405 Mon Sep 17 00:00:00 2001 From: Fil Date: Wed, 4 Jul 2018 19:14:17 +0200 Subject: Add full integration with the Connectivity Framework Fixes Issue #1867 "Download app not working". Uses proxy classes to hook into the application framework, solving almost any problem with missing connectivity features, creating a connection that is fully managed by the framework itself. Introduces a background service that performs all backend operations. Cleans up code design, refining structure of classes and entities. --- .../repwifiapp/fwproxies/LinkPropertiesProxy.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 app/src/fil/libre/repwifiapp/fwproxies/LinkPropertiesProxy.java (limited to 'app/src/fil/libre/repwifiapp/fwproxies/LinkPropertiesProxy.java') diff --git a/app/src/fil/libre/repwifiapp/fwproxies/LinkPropertiesProxy.java b/app/src/fil/libre/repwifiapp/fwproxies/LinkPropertiesProxy.java new file mode 100644 index 0000000..4bfeeaa --- /dev/null +++ b/app/src/fil/libre/repwifiapp/fwproxies/LinkPropertiesProxy.java @@ -0,0 +1,90 @@ +// +// Copyright 2017, 2018 Filippo "Fil" Bergamo +// +// This file is part of RepWifiApp. +// +// RepWifiApp is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// RepWifiApp is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with RepWifiApp. If not, see . +// +// ******************************************************************** +// +// This file is derivative work, inspired by the original class definition: +// "android.net.LinkProperties.java" as found in version 6.0 of the Android Operating System. +// Following is the original copyright notice: +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package fil.libre.repwifiapp.fwproxies; + +import java.net.InetAddress; + + +public class LinkPropertiesProxy extends FrameworkProxy{ + + @Override + protected String getInnerClassName(){ + return "android.net.LinkProperties"; + } + + public LinkPropertiesProxy(){ + createInnerObject(null); + } + + public LinkPropertiesProxy(LinkPropertiesProxy lp){ + createInnerObject(getInnerClass(), lp.inner); + } + + public void setInterfaceName(String iface) { + invokeMethod("setInterfaceName", String.class , iface); + } + + public boolean addRoute(RouteInfoProxy route) { + if (route == null){ + return false; + } + return (Boolean)invokeMethodGetResult("addRoute", route.getInnerClass(), route); + } + + public boolean addLinkAddress(LinkAddressProxy address) { + if (address == null){ + return false; + } + return (Boolean)invokeMethodGetResult("addLinkAddress",address.getInnerClass(), address); + } + + public boolean addDnsServer(InetAddress dnsServer) { + if (dnsServer == null){ + return false; + } + return (Boolean)invokeMethodGetResult("addDnsServer", InetAddress.class, dnsServer); + } + + protected static String getStaticInnerClassName(){ + return "android.net.LinkProperties"; + } + + +} -- cgit v1.2.3