/*
*
* * Copyright 2015. Appsi Mobile
* *
* * 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 com.appsimobile.appsii.module.home.config;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.support.v4.util.SimpleArrayMap;
import android.text.TextUtils;
/**
* Created by nick on 24/03/15.
*/
public class MockHomeItemConfiguration extends AbstractHomeItemConfiguration {
final SimpleArrayMap<String, String> mProperties;
final Handler mHandler;
public MockHomeItemConfiguration(Context context) {
super(context);
mProperties = new SimpleArrayMap<>();
mHandler = new Handler(Looper.getMainLooper());
}
public void initProperty(String key, String value) {
mProperties.put(key, value);
}
@Override
public void updateProperty(final long cellId, final String key, final String value) {
mProperties.put(key, value);
mHandler.post(new Runnable() {
@Override
public void run() {
notifyPropertyChanged(cellId, key, value);
}
});
}
@Override
public String getProperty(long cellId, String key, String fallback) {
if (!mProperties.containsKey(key)) return fallback;
return mProperties.get(key);
}
@Override
public void removeProperty(final long cellId, final String key) {
mProperties.remove(key);
mHandler.post(new Runnable() {
@Override
public void run() {
notifyPropertyDeleted(cellId, key);
}
});
}
@Override
public void removeAllProperties(long cellId) {
int N = mProperties.size();
for (int i = 0; i < N; i++) {
String key = mProperties.keyAt(i);
removeProperty(cellId, key);
}
}
@Override
public String[] getWeatherWidgetWoeids(String key) {
return new String[0];
}
@Override
public long findCellWithPropertyValue(String propertyName, String value) {
if (mProperties.containsKey(propertyName)) {
if (TextUtils.equals(value, mProperties.get(propertyName))) return 1L;
}
return -1L;
}
}