// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/AppPreferencesHelper.java
// public class AppPreferencesHelper implements PreferencesHelper {
// 
//   private static final String PREF_KEY_IS_LOGGED_IN = "PREF_KEY_IS_LOGGED_IN";
//   private static final String PREF_KEY_USER_NAME = "PREF_KEY_USER_NAME_VALUE";
// 
//   private CommonPreferencesHelper commonPreferencesHelper;
// 
//   @Inject public AppPreferencesHelper(CommonPreferencesHelper commonPreferencesHelper) {
//     this.commonPreferencesHelper = commonPreferencesHelper;
//   }
// 
//   @Override public void setLoggedIn() {
//     commonPreferencesHelper.setBooleanToPrefs(PREF_KEY_IS_LOGGED_IN, true);
//   }
// 
//   @Override public boolean isLoggedIn() {
//     return commonPreferencesHelper.getBooleanFromPrefs(PREF_KEY_IS_LOGGED_IN);
//   }
// 
//   @Override public void setUserName(String userName) {
//     commonPreferencesHelper.setStringToPrefs(PREF_KEY_USER_NAME, userName);
//   }
// 
//   @Override public String getUserName() {
//     return commonPreferencesHelper.getStringFromPrefs(PREF_KEY_USER_NAME);
//   }
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/CommonPreferencesHelper.java
// public class CommonPreferencesHelper implements BasePreferencesHelper {
// 
//   //shared prefs name
//   private static final String NAME_PREF = "weather_guru_prefs";
// 
//   private final SharedPreferences preferences;
// 
//   @Inject public CommonPreferencesHelper(Context context) {
//     preferences = context.getSharedPreferences(NAME_PREF, Context.MODE_PRIVATE);
//   }
// 
//   /**
//    * Method for getting boolean value from prefs
//    *
//    * @return boolean value
//    */
//   @Override public boolean getBooleanFromPrefs(String key) {
//     return preferences.getBoolean(key, false);
//   }
// 
//   /**
//    * Method for setting boolean value from prefs
//    */
//   @Override public void setBooleanToPrefs(String key, boolean value) {
//     preferences.edit().putBoolean(key, value).apply();
//   }
// 
//   /**
//    * Method for getting string value from prefs
//    *
//    * @return string value
//    */
//   @Override public String getStringFromPrefs(String key) {
//     return preferences.getString(key, "");
//   }
// 
//   /**
//    * Method for setting string value from prefs
//    */
//   @Override public void setStringToPrefs(String key, String value) {
//     preferences.edit().putString(key, value).apply();
//   }
// 
//   /**
//    * Method for getting string value from prefs with default value
//    *
//    * @return string value
//    */
//   @Override public String getStringFromPrefs(String key, String defaultValue) {
//     return preferences.getString(key, defaultValue);
//   }
// 
//   /**
//    * Method for setting long value from prefs
//    */
//   @Override public void setLongToPrefs(String key, long value) {
//     preferences.edit().putLong(key, value).apply();
//   }
// 
//   /**
//    * Method for getting long value from prefs
//    *
//    * @return long value
//    */
//   @Override public long getLongFromPrefs(String key) {
//     return preferences.getLong(key, 0);
//   }
// 
//   /**
//    * Method for getting int value from prefs
//    *
//    * @return integer value
//    */
//   @Override public int getIntFromPrefs(String key) {
//     return preferences.getInt(key, 0);
//   }
// 
//   /**
//    * Method for setting int value from prefs
//    */
//   @Override public void setIntToPrefs(String key, int value) {
//     preferences.edit().putInt(key, value).apply();
//   }
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/PreferencesHelper.java
// public interface PreferencesHelper {
// 
//   void setLoggedIn();
// 
//   boolean isLoggedIn();
// 
//   void setUserName(String userName);
// 
//   String getUserName();
// }


import android.content.Context;
import dagger.Module;
import dagger.Provides;
import mk.petrovski.weathergurumvp.data.local.preferences.AppPreferencesHelper;
import mk.petrovski.weathergurumvp.data.local.preferences.CommonPreferencesHelper;
import mk.petrovski.weathergurumvp.data.local.preferences.PreferencesHelper;
import mk.petrovski.weathergurumvp.injection.qualifier.ApplicationContext;
import mk.petrovski.weathergurumvp.injection.scope.WeatherGuruApplicationScope;
package mk.petrovski.weathergurumvp.injection.module;


/**
 * Created by Nikola Petrovski on 3/1/2017.
 */
@Module(includes = ContextModule.class) public class PreferencesModule {

  @Provides @WeatherGuruApplicationScope CommonPreferencesHelper getPreferencesHelper(
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/AppPreferencesHelper.java
// public class AppPreferencesHelper implements PreferencesHelper {
// 
//   private static final String PREF_KEY_IS_LOGGED_IN = "PREF_KEY_IS_LOGGED_IN";
//   private static final String PREF_KEY_USER_NAME = "PREF_KEY_USER_NAME_VALUE";
// 
//   private CommonPreferencesHelper commonPreferencesHelper;
// 
//   @Inject public AppPreferencesHelper(CommonPreferencesHelper commonPreferencesHelper) {
//     this.commonPreferencesHelper = commonPreferencesHelper;
//   }
// 
//   @Override public void setLoggedIn() {
//     commonPreferencesHelper.setBooleanToPrefs(PREF_KEY_IS_LOGGED_IN, true);
//   }
// 
//   @Override public boolean isLoggedIn() {
//     return commonPreferencesHelper.getBooleanFromPrefs(PREF_KEY_IS_LOGGED_IN);
//   }
// 
//   @Override public void setUserName(String userName) {
//     commonPreferencesHelper.setStringToPrefs(PREF_KEY_USER_NAME, userName);
//   }
// 
//   @Override public String getUserName() {
//     return commonPreferencesHelper.getStringFromPrefs(PREF_KEY_USER_NAME);
//   }
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/CommonPreferencesHelper.java
// public class CommonPreferencesHelper implements BasePreferencesHelper {
// 
//   //shared prefs name
//   private static final String NAME_PREF = "weather_guru_prefs";
// 
//   private final SharedPreferences preferences;
// 
//   @Inject public CommonPreferencesHelper(Context context) {
//     preferences = context.getSharedPreferences(NAME_PREF, Context.MODE_PRIVATE);
//   }
// 
//   /**
//    * Method for getting boolean value from prefs
//    *
//    * @return boolean value
//    */
//   @Override public boolean getBooleanFromPrefs(String key) {
//     return preferences.getBoolean(key, false);
//   }
// 
//   /**
//    * Method for setting boolean value from prefs
//    */
//   @Override public void setBooleanToPrefs(String key, boolean value) {
//     preferences.edit().putBoolean(key, value).apply();
//   }
// 
//   /**
//    * Method for getting string value from prefs
//    *
//    * @return string value
//    */
//   @Override public String getStringFromPrefs(String key) {
//     return preferences.getString(key, "");
//   }
// 
//   /**
//    * Method for setting string value from prefs
//    */
//   @Override public void setStringToPrefs(String key, String value) {
//     preferences.edit().putString(key, value).apply();
//   }
// 
//   /**
//    * Method for getting string value from prefs with default value
//    *
//    * @return string value
//    */
//   @Override public String getStringFromPrefs(String key, String defaultValue) {
//     return preferences.getString(key, defaultValue);
//   }
// 
//   /**
//    * Method for setting long value from prefs
//    */
//   @Override public void setLongToPrefs(String key, long value) {
//     preferences.edit().putLong(key, value).apply();
//   }
// 
//   /**
//    * Method for getting long value from prefs
//    *
//    * @return long value
//    */
//   @Override public long getLongFromPrefs(String key) {
//     return preferences.getLong(key, 0);
//   }
// 
//   /**
//    * Method for getting int value from prefs
//    *
//    * @return integer value
//    */
//   @Override public int getIntFromPrefs(String key) {
//     return preferences.getInt(key, 0);
//   }
// 
//   /**
//    * Method for setting int value from prefs
//    */
//   @Override public void setIntToPrefs(String key, int value) {
//     preferences.edit().putInt(key, value).apply();
//   }
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/local/preferences/PreferencesHelper.java
// public interface PreferencesHelper {
// 
//   void setLoggedIn();
// 
//   boolean isLoggedIn();
// 
//   void setUserName(String userName);
// 
//   String getUserName();
// }


// Path: app/src/main/java/mk/petrovski/weathergurumvp/injection/module/PreferencesModule.java
import android.content.Context;
import dagger.Module;
import dagger.Provides;
import mk.petrovski.weathergurumvp.data.local.preferences.AppPreferencesHelper;
import mk.petrovski.weathergurumvp.data.local.preferences.CommonPreferencesHelper;
import mk.petrovski.weathergurumvp.data.local.preferences.PreferencesHelper;
import mk.petrovski.weathergurumvp.injection.qualifier.ApplicationContext;
import mk.petrovski.weathergurumvp.injection.scope.WeatherGuruApplicationScope;

package mk.petrovski.weathergurumvp.injection.module;


/**
 * Created by Nikola Petrovski on 3/1/2017.
 */
@Module(includes = ContextModule.class) public class PreferencesModule {

  @Provides @WeatherGuruApplicationScope CommonPreferencesHelper getPreferencesHelper(
      @ApplicationContext Context context) {