// Path: app/src/main/java/app/openconnect/core/OpenVpnService.java
// public class LocalBinder extends Binder {
// 	public OpenVpnService getService() {
// 		// Return this instance of LocalService so clients can call public methods
// 		return OpenVpnService.this;
// 	}
// }


import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import app.openconnect.R;
import app.openconnect.core.OpenVpnService.LocalBinder;
import org.infradead.libopenconnect.LibOpenConnect.VPNStats;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
			mStatsHandler.removeCallbacks(mStatsRunnable);
			mStatsHandler = null;
		}
	}

	public void unbind() {
		stop();
		if (service != null) {
			service.updateActivityRefcount(mIsActivity ? -1 : 0);
		}
		mContext.unbindService(mConnection);
	}

	public String getByteCountSummary() {
		if (!statsValid) {
			return "";
		}
		return mContext.getString(R.string.statusline_bytecount,
				OpenVpnService.humanReadableByteCount(newStats.rxBytes, false),
				OpenVpnService.humanReadableByteCount(deltaStats.rxBytes, true),
				OpenVpnService.humanReadableByteCount(newStats.txBytes, false),
				OpenVpnService.humanReadableByteCount(deltaStats.txBytes, true));
	}

	private ServiceConnection mConnection = new ServiceConnection() {

		@Override
		public void onServiceConnected(ComponentName className, IBinder serviceBinder) {
			// We've bound to LocalService, cast the IBinder and get
			// LocalService instance
// Path: app/src/main/java/app/openconnect/core/OpenVpnService.java
// public class LocalBinder extends Binder {
// 	public OpenVpnService getService() {
// 		// Return this instance of LocalService so clients can call public methods
// 		return OpenVpnService.this;
// 	}
// }


// Path: app/src/main/java/app/openconnect/core/VPNConnector.java
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import app.openconnect.R;
import app.openconnect.core.OpenVpnService.LocalBinder;
import org.infradead.libopenconnect.LibOpenConnect.VPNStats;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;

			mStatsHandler.removeCallbacks(mStatsRunnable);
			mStatsHandler = null;
		}
	}

	public void unbind() {
		stop();
		if (service != null) {
			service.updateActivityRefcount(mIsActivity ? -1 : 0);
		}
		mContext.unbindService(mConnection);
	}

	public String getByteCountSummary() {
		if (!statsValid) {
			return "";
		}
		return mContext.getString(R.string.statusline_bytecount,
				OpenVpnService.humanReadableByteCount(newStats.rxBytes, false),
				OpenVpnService.humanReadableByteCount(deltaStats.rxBytes, true),
				OpenVpnService.humanReadableByteCount(newStats.txBytes, false),
				OpenVpnService.humanReadableByteCount(deltaStats.txBytes, true));
	}

	private ServiceConnection mConnection = new ServiceConnection() {

		@Override
		public void onServiceConnected(ComponentName className, IBinder serviceBinder) {
			// We've bound to LocalService, cast the IBinder and get
			// LocalService instance
			LocalBinder binder = (LocalBinder) serviceBinder;