package org.softeg.slartus.forpdaplus.mainnotifiers; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import com.afollestad.materialdialogs.MaterialDialog; import org.softeg.slartus.forpdacommon.DateExtensions; import org.softeg.slartus.forpdacommon.ExtPreferences; import org.softeg.slartus.forpdaplus.App; import org.softeg.slartus.forpdaplus.common.AppLog; import java.util.Date; import java.util.GregorianCalendar; /* * Created by slartus on 03.06.2014. */ public abstract class MainNotifier { private NotifiersManager notifiersManager; protected String name; protected int period; protected static String getAppVersion(Context context) { try { String packageName = context.getPackageName(); PackageInfo pInfo = context.getPackageManager().getPackageInfo( packageName, PackageManager.GET_META_DATA); return pInfo.versionName; } catch (PackageManager.NameNotFoundException e1) { AppLog.e(context, e1); } return ""; } public void addToStack(MaterialDialog materialDialog){ notifiersManager.addNotifyDialog(materialDialog); } public MainNotifier(NotifiersManager notifiersManager, String name, int period) { this.notifiersManager = notifiersManager; this.name = name; this.period = period; } public String getName(){ return name; } protected boolean isTime() { GregorianCalendar lastShowpromoCalendar = new GregorianCalendar(); SharedPreferences prefs = App.getInstance().getPreferences(); Date lastCheckDate=ExtPreferences.getDateTime(prefs, "notifier." + name, null); if(lastCheckDate==null){ saveTime(); return true; } lastShowpromoCalendar.setTime(lastCheckDate); GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(new Date()); int days = DateExtensions.getDaysBetween(calendar.getTime(), lastShowpromoCalendar.getTime()); return days >= period; } protected void saveTime() { SharedPreferences.Editor editor = App.getInstance().getPreferences().edit(); ExtPreferences.putDateTime(editor, "notifier." + name, new Date()); editor.apply(); } }