All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.abubusoft.kripton.android.annotation.BindPreference Maven / Gradle / Ivy

There is a newer version: 8.2.0-rc.4
Show newest version
/*******************************************************************************
 * Copyright 2016-2019 Francesco Benincasa ([email protected])
 * 
 * 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.abubusoft.kripton.android.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 

* This annotation allow to specify behaviour for specific field when it is * persisted to a SharedPreference with @BindSharedPreferences * annotation. *

* *
 * @BindSharedPreferences(liveData = true)
 * public class AppPreferences {
 * 
 * 	public String name = "ciao";
 * 
 * 	protected String description;
 * 
 * 	public float valueFloat = 5.0f;
 * 
 * 	public boolean valueBoolean;
 * 
 * 	protected String[] stringArray;
 * 
 * 	public List<String> stringList;
 * 
 * 	public String[] getStringArray() {
 * 		return stringArray;
 * 	}
 * 
 * 	public void setStringArray(String[] stringArray) {
 * 		this.stringArray = stringArray;
 * 	}
 * 
 * 	public int valueInt;
 * 
 * 	public Long valueLong;
 * 
 * 	public String getDescription() {
 * 		return description;
 * 	}
 * 
 * 	public void setDescription(String description) {
 * 		this.description = description;
 * 	}
 * }
 * 
* *

* With liveData=true Kripton will generate the * LiveData support code. This feature allows to manage Shared * Preferences with Live Data. *

* *
 * BindAppPreferences sp = BindAppPreferences.getInstance();
 * sp.getDescriptionAsLiveData().observeForever(new Observer<String>() {
 * 
 * 	@Override
 * 	public void onChanged(String t) {
 * 		Logger.info("getDescriptionAsLiveData  " + t);
 * 
 * 	}
 * });
 * 
* */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface BindPreference { /** * Enabled. * * @return if true, means field must bind persisted on shared preferences */ boolean enabled() default true; /** * Value. * * @return Preference name. Default name is attribute name. */ String value() default ""; /** * enable rx generation for marked property * * @return */ boolean rx() default true; /** * enable live data for marked property * * @return */ boolean liveData() default true; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy