/* * Copyright 2014-2016 CyberVision, Inc. * * 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 org.kaaproject.kaa.client; import android.content.Context; import org.kaaproject.kaa.client.channel.connectivity.ConnectivityChecker; import org.kaaproject.kaa.client.connectivity.AndroidConnectivityChecker; import org.kaaproject.kaa.client.context.ExecutorContext; import org.kaaproject.kaa.client.context.SimpleExecutorContext; import org.kaaproject.kaa.client.persistence.AndroidInternalPersistentStorage; import org.kaaproject.kaa.client.persistence.PersistentStorage; import org.kaaproject.kaa.client.transport.AbstractHttpClient; import org.kaaproject.kaa.client.transport.AndroidHttpClient; import org.kaaproject.kaa.client.util.AndroidBase64; import org.kaaproject.kaa.client.util.Base64; import java.security.PrivateKey; import java.security.PublicKey; public class AndroidKaaPlatformContext implements KaaClientPlatformContext { private final Context context; private final KaaClientProperties properties; private final ExecutorContext executorContext; public AndroidKaaPlatformContext(Context context) { this(context, null); } public AndroidKaaPlatformContext(Context context, KaaClientProperties properties) { this(context, properties, new SimpleExecutorContext()); } /** * Instantiates a new AndroidKaaPlatformContext. * * @param context the context * @param properties the Kaa client properties * @param executorContext the executor context */ public AndroidKaaPlatformContext(Context context, KaaClientProperties properties, ExecutorContext executorContext) { super(); this.context = context; this.properties = properties; this.executorContext = executorContext; } @Override public AbstractHttpClient createHttpClient(String url, PrivateKey privateKey, PublicKey publicKey, PublicKey remotePublicKey) { return new AndroidHttpClient(url, privateKey, publicKey, remotePublicKey); } @Override public PersistentStorage createPersistentStorage() { return new AndroidInternalPersistentStorage(context); } @Override public Base64 getBase64() { return AndroidBase64.getInstance(); } @Override public ConnectivityChecker createConnectivityChecker() { return new AndroidConnectivityChecker(context); } @Override public KaaClientProperties getProperties() { return properties; } @Override public ExecutorContext getExecutorContext() { return executorContext; } @Override public boolean needToCheckClientState() { return false; } }