/* * Copyright 2014 A.C.R. Development */ package org.purplei2p.lightning.constant; import android.app.Application; import android.support.annotation.NonNull; import com.anthonycr.bonsai.Single; import com.anthonycr.bonsai.SingleAction; import com.anthonycr.bonsai.SingleSubscriber; import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.inject.Inject; import org.purplei2p.lightning.R; import org.purplei2p.lightning.BrowserApp; import org.purplei2p.lightning.search.SearchEngineProvider; import org.purplei2p.lightning.search.engine.BaseSearchEngine; import org.purplei2p.lightning.utils.Utils; public class StartPage { public static final String FILENAME = "homepage.html"; private static final String HEAD_1 = "" + "" + "" + "" + "" + ""; private static final String HEAD_2 = "" + "" + "


" + "" + "


"; @NonNull public static File getStartPageFile(@NonNull Application application) { return new File(application.getFilesDir(), FILENAME); } @NonNull private final String mTitle; @Inject Application mApp; @Inject SearchEngineProvider mSearchEngineProvider; public StartPage() { BrowserApp.getAppComponent().inject(this); mTitle = mApp.getString(R.string.home); } @NonNull public Single getHomepage() { return Single.create(new SingleAction() { @Override public void onSubscribe(@NonNull SingleSubscriber subscriber) { StringBuilder homepageBuilder = new StringBuilder(HEAD_1 + mTitle + HEAD_2); BaseSearchEngine currentSearchEngine = mSearchEngineProvider.getCurrentSearchEngine(); String icon = currentSearchEngine.getIconUrl(); String searchUrl = currentSearchEngine.getQueryUrl(); homepageBuilder.append(icon); homepageBuilder.append(MIDDLE); homepageBuilder.append(searchUrl); homepageBuilder.append(END); File homepage = getStartPageFile(mApp); FileWriter hWriter = null; try { //noinspection IOResourceOpenedButNotSafelyClosed hWriter = new FileWriter(homepage, false); hWriter.write(homepageBuilder.toString()); } catch (IOException e) { e.printStackTrace(); } finally { Utils.close(hWriter); } subscriber.onItem(Constants.FILE + homepage); } }); } }