/*
* 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);
}
});
}
}