mirror of
				https://github.com/MinimalBible/MinimalBible-Legacy
				synced 2025-11-04 02:10:30 -05:00 
			
		
		
		
	Issues with Dagger and Android Annotations, broken
This commit is contained in:
		@ -19,6 +19,14 @@ public class MinimalBible extends Application {
 | 
			
		||||
		return instance;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public static MinimalBible getApplication(Context ctx) {
 | 
			
		||||
        return (MinimalBible)ctx.getApplicationContext();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static MinimalBible getApplication() {
 | 
			
		||||
        return (MinimalBible)getAppContext();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onCreate() {
 | 
			
		||||
        graph = ObjectGraph.create(new MinimalBibleModules());
 | 
			
		||||
@ -28,12 +36,4 @@ public class MinimalBible extends Application {
 | 
			
		||||
    public void inject(Object o) {
 | 
			
		||||
        graph.inject(o);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static MinimalBible getApplication(Context ctx) {
 | 
			
		||||
        return (MinimalBible)ctx.getApplicationContext();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static MinimalBible getApplication() {
 | 
			
		||||
        return (MinimalBible)getAppContext();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -25,8 +25,6 @@ import de.greenrobot.event.EventBus;
 | 
			
		||||
)
 | 
			
		||||
public class ActivityDownloaderModule {
 | 
			
		||||
 | 
			
		||||
    private final Context ctx = MinimalBible.getAppContext();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Provide a Singleton DownloadManager for injection
 | 
			
		||||
     * Note that we need to annotate Singleton here, only annotating on the
 | 
			
		||||
@ -43,8 +41,8 @@ public class ActivityDownloaderModule {
 | 
			
		||||
        return new EventBus();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Provides @Singleton
 | 
			
		||||
    DownloadPrefsManager providePrefsManager() {
 | 
			
		||||
        return new DownloadPrefsManager(ctx);
 | 
			
		||||
    @Provides //@Singleton
 | 
			
		||||
    DownloadPrefs_ provideDownloadPrefs() {
 | 
			
		||||
        return new DownloadPrefs_(MinimalBible.getApplication());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,7 @@ import android.widget.Toast;
 | 
			
		||||
 | 
			
		||||
import com.readystatesoftware.systembartint.SystemBarTintManager;
 | 
			
		||||
 | 
			
		||||
import org.androidannotations.annotations.sharedpreferences.Pref;
 | 
			
		||||
import org.bspeice.minimalbible.MinimalBible;
 | 
			
		||||
import org.bspeice.minimalbible.R;
 | 
			
		||||
import org.bspeice.minimalbible.activities.downloader.manager.DownloadManager;
 | 
			
		||||
@ -48,13 +49,14 @@ public class BookListFragment extends Fragment {
 | 
			
		||||
    ListView downloadsAvailable;
 | 
			
		||||
 | 
			
		||||
    @Inject DownloadManager downloadManager;
 | 
			
		||||
    @Inject DownloadPrefsManager prefsManager;
 | 
			
		||||
 | 
			
		||||
    @Inject DownloadPrefs_ downloadPrefs;
 | 
			
		||||
 | 
			
		||||
	private ProgressDialog refreshDialog;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns a new instance of this fragment for the given section number.
 | 
			
		||||
     * TODO: This will need to be switched to an @Provides class
 | 
			
		||||
     * TODO: This will need to be switched to an @Provides class maybe?
 | 
			
		||||
     */
 | 
			
		||||
    public static BookListFragment newInstance(BookCategory c) {
 | 
			
		||||
        BookListFragment fragment = new BookListFragment();
 | 
			
		||||
@ -67,8 +69,9 @@ public class BookListFragment extends Fragment {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onCreate(Bundle state) {
 | 
			
		||||
        super.onCreate(state);
 | 
			
		||||
        MinimalBible app = MinimalBible.getApplication(getActivity());
 | 
			
		||||
        app.inject(this);
 | 
			
		||||
        //TODO: Figure out why this doesn't work. Best guess is because the context from
 | 
			
		||||
        //getApplication(getActivity()) isn't actually MinimalBible.getAppContext()
 | 
			
		||||
        MinimalBible.getApplication().inject(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -89,7 +92,7 @@ public class BookListFragment extends Fragment {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 	public void displayModules() {
 | 
			
		||||
		boolean dialogDisplayed = prefsManager.getShowedDownloadDialog();
 | 
			
		||||
		boolean dialogDisplayed = downloadPrefs.showedDownloadDialog().get();
 | 
			
		||||
		
 | 
			
		||||
		if (!dialogDisplayed) {
 | 
			
		||||
			AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 | 
			
		||||
@ -154,12 +157,12 @@ public class BookListFragment extends Fragment {
 | 
			
		||||
			DialogInterface.OnClickListener {
 | 
			
		||||
		@Override
 | 
			
		||||
		public void onClick(DialogInterface dialog, int which) {
 | 
			
		||||
			prefsManager.setShowedDownloadDialog(true);
 | 
			
		||||
            downloadPrefs.showedDownloadDialog().put(true);
 | 
			
		||||
 | 
			
		||||
			switch (which) {
 | 
			
		||||
			case DialogInterface.BUTTON_POSITIVE:
 | 
			
		||||
				// Clicked ready to continue - allow downloading in the future
 | 
			
		||||
				prefsManager.setDownloadEnabled(true);
 | 
			
		||||
                downloadPrefs.hasEnabledDownload().put(true);
 | 
			
		||||
 | 
			
		||||
				// And warn them that it has been enabled in the future.
 | 
			
		||||
				Toast.makeText(getActivity(),
 | 
			
		||||
@ -170,7 +173,7 @@ public class BookListFragment extends Fragment {
 | 
			
		||||
 | 
			
		||||
			case DialogInterface.BUTTON_NEGATIVE:
 | 
			
		||||
				// Clicked to not download - Permanently disable downloading
 | 
			
		||||
				prefsManager.setDownloadEnabled(false);
 | 
			
		||||
				downloadPrefs.hasEnabledDownload().put(false);
 | 
			
		||||
				Toast.makeText(getActivity(),
 | 
			
		||||
						"Disabling downloading. Re-enable it in settings.",
 | 
			
		||||
						Toast.LENGTH_SHORT).show();
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,21 @@
 | 
			
		||||
package org.bspeice.minimalbible.activities.downloader;
 | 
			
		||||
 | 
			
		||||
import org.androidannotations.annotations.sharedpreferences.DefaultBoolean;
 | 
			
		||||
import org.androidannotations.annotations.sharedpreferences.DefaultLong;
 | 
			
		||||
import org.androidannotations.annotations.sharedpreferences.SharedPref;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Created by Bradlee Speice on 5/8/2014.
 | 
			
		||||
 */
 | 
			
		||||
@SharedPref(value= SharedPref.Scope.UNIQUE)
 | 
			
		||||
public interface DownloadPrefs {
 | 
			
		||||
 | 
			
		||||
    @DefaultBoolean(false)
 | 
			
		||||
    boolean hasEnabledDownload();
 | 
			
		||||
 | 
			
		||||
    @DefaultBoolean(false)
 | 
			
		||||
    boolean showedDownloadDialog();
 | 
			
		||||
 | 
			
		||||
    @DefaultLong(0)
 | 
			
		||||
    long downloadRefreshedOn();
 | 
			
		||||
}
 | 
			
		||||
@ -1,51 +0,0 @@
 | 
			
		||||
package org.bspeice.minimalbible.activities.downloader;
 | 
			
		||||
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.content.SharedPreferences;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import javax.inject.Singleton;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Created by Bradlee Speice on 5/8/2014.
 | 
			
		||||
 */
 | 
			
		||||
@Singleton
 | 
			
		||||
public class DownloadPrefsManager {
 | 
			
		||||
    private final SharedPreferences prefs;
 | 
			
		||||
 | 
			
		||||
    public static final String DOWNLOAD_PREFS_FILE = "DOWNLOADER_PREFERENCES";
 | 
			
		||||
 | 
			
		||||
    public static final String KEY_DOWNLOAD_ENABLED = "HAS_ENABLED_DOWNLOAD";
 | 
			
		||||
    public static final String KEY_SHOWED_DOWNLOAD_DIALOG = "SHOWED_DOWNLOAD_DIALOG";
 | 
			
		||||
    public static final String KEY_DOWNLOAD_REFRESHED_ON = "DOWNLOAD_REFRESHED_ON";
 | 
			
		||||
 | 
			
		||||
    public DownloadPrefsManager(Context ctx) {
 | 
			
		||||
        prefs = ctx.getSharedPreferences(DOWNLOAD_PREFS_FILE, Context.MODE_PRIVATE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean getDownloadEnabled() {
 | 
			
		||||
        return prefs.getBoolean(KEY_DOWNLOAD_ENABLED, false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setDownloadEnabled(boolean val) {
 | 
			
		||||
        prefs.edit().putBoolean(KEY_DOWNLOAD_ENABLED, val).commit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean getShowedDownloadDialog() {
 | 
			
		||||
        return prefs.getBoolean(KEY_SHOWED_DOWNLOAD_DIALOG, false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setShowedDownloadDialog(boolean val) {
 | 
			
		||||
        prefs.edit().putBoolean(KEY_SHOWED_DOWNLOAD_DIALOG, val).commit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Date getDownloadRefreshedOn() {
 | 
			
		||||
        return new Date(prefs.getLong(KEY_DOWNLOAD_REFRESHED_ON, 0));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setDownloadRefreshedOn(Date d) {
 | 
			
		||||
        prefs.edit().putLong(KEY_DOWNLOAD_REFRESHED_ON, d.getTime()).commit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -7,13 +7,12 @@ import android.os.AsyncTask;
 | 
			
		||||
import android.util.Log;
 | 
			
		||||
 | 
			
		||||
import org.bspeice.minimalbible.MinimalBible;
 | 
			
		||||
import org.bspeice.minimalbible.activities.downloader.DownloadPrefsManager;
 | 
			
		||||
import org.bspeice.minimalbible.activities.downloader.DownloadPrefs_;
 | 
			
		||||
import org.crosswire.jsword.book.Book;
 | 
			
		||||
import org.crosswire.jsword.book.BookFilter;
 | 
			
		||||
import org.crosswire.jsword.book.install.InstallException;
 | 
			
		||||
import org.crosswire.jsword.book.install.Installer;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.LinkedList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@ -24,10 +23,11 @@ import de.greenrobot.event.EventBus;
 | 
			
		||||
public class BookRefreshTask extends AsyncTask<Installer, Integer, List<Book>> {
 | 
			
		||||
	private static final String TAG = "EventBookRefreshTask";
 | 
			
		||||
 | 
			
		||||
    // Refresh if last refresh date is after time below
 | 
			
		||||
    private final Date refreshBefore = new Date(System.currentTimeMillis() -  604800000L); // 1 Week in millis
 | 
			
		||||
    // If last refresh was before the below, force an internet refresh
 | 
			
		||||
    private final Long refreshAfter = System.currentTimeMillis() - 604800000L; // 1 Week in millis
 | 
			
		||||
 | 
			
		||||
    @Inject protected DownloadPrefsManager prefsManager;
 | 
			
		||||
    @Inject
 | 
			
		||||
    DownloadPrefs_ downloadPrefs;
 | 
			
		||||
 | 
			
		||||
	private EventBus downloadBus;
 | 
			
		||||
	private BookFilter filter;
 | 
			
		||||
@ -52,7 +52,7 @@ public class BookRefreshTask extends AsyncTask<Installer, Integer, List<Book>> {
 | 
			
		||||
			if (doRefresh()) {
 | 
			
		||||
				try {
 | 
			
		||||
					i.reloadBookList();
 | 
			
		||||
                    prefsManager.setDownloadRefreshedOn(new Date(System.currentTimeMillis()));
 | 
			
		||||
                    downloadPrefs.downloadRefreshedOn().put(System.currentTimeMillis());
 | 
			
		||||
				} catch (InstallException e) {
 | 
			
		||||
					Log.e(TAG,
 | 
			
		||||
							"Error downloading books from installer: "
 | 
			
		||||
@ -88,10 +88,10 @@ public class BookRefreshTask extends AsyncTask<Installer, Integer, List<Book>> {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean downloadEnabled() {
 | 
			
		||||
        return prefsManager.getDownloadEnabled();
 | 
			
		||||
        return downloadPrefs.hasEnabledDownload().get();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean needsRefresh() {
 | 
			
		||||
        return (prefsManager.getDownloadRefreshedOn().before(refreshBefore));
 | 
			
		||||
        return (downloadPrefs.downloadRefreshedOn().get() > refreshAfter);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user