PushInstructionsActivity.java 源代码
package activity.setting;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import base.HiActivity;
import com.baidu.mobads.sdk.internal.ci;
import com.hichip.campro.R;
import common.HiDataValue;
import common.TitleView;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import utils.HiTools;
public class PushInstructionsActivity extends HiActivity {
private String mUid = "";
WebView myWebView;
TitleView title;
private String url;
@Override
protected int setLayoutId() {
return R.layout.activity_agreement;
}
@Override
protected void init(Bundle bundle) {
initTitle();
initData();
initFile();
}
private void initFile() {
final String hTmlPath = HiDataValue.getHTmlPath(this);
HiTools.getUriByPhone(this, this.mUid);
showjuHuaDialog();
new Thread(new Runnable() {
@Override
public void run() {
PushInstructionsActivity pushInstructionsActivity = PushInstructionsActivity.this;
String replace = HiTools.getUriByPhone(pushInstructionsActivity, pushInstructionsActivity.mUid).replace("html", "docx");
PushInstructionsActivity.this.copyAssetAndWrite(hTmlPath, replace);
PushInstructionsActivity pushInstructionsActivity2 = PushInstructionsActivity.this;
pushInstructionsActivity2.docx2html(hTmlPath, replace, HiTools.getUriByPhone(pushInstructionsActivity2, pushInstructionsActivity2.mUid), hTmlPath);
PushInstructionsActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
PushInstructionsActivity.this.dismissjuHuaDialog();
PushInstructionsActivity.this.myWebView.loadUrl("file://" + hTmlPath + HiTools.getUriByPhone(PushInstructionsActivity.this, PushInstructionsActivity.this.mUid));
}
});
}
}).start();
}
private void initData() {
WebView webView = (WebView) findViewById(R.id.webView);
this.myWebView = webView;
WebSettings settings = webView.getSettings();
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setCacheMode(2);
settings.setDefaultTextEncodingName("utf-8");
settings.setDisplayZoomControls(false);
settings.setAllowFileAccess(true);
this.myWebView.setWebViewClient(new WebViewClient());
this.myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView webView2, int i, String str, String str2) {
super.onReceivedError(webView2, i, str, str2);
PushInstructionsActivity.this.myWebView.setVisibility(8);
}
@Override
public void onReceivedError(WebView webView2, WebResourceRequest webResourceRequest, WebResourceError webResourceError) {
super.onReceivedError(webView2, webResourceRequest, webResourceError);
PushInstructionsActivity.this.myWebView.setVisibility(8);
}
});
this.myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView webView2, String str) {
super.onReceivedTitle(webView2, str);
if (str.contains(ci.b)) {
PushInstructionsActivity.this.myWebView.setVisibility(8);
}
}
});
}
private void initTitle() {
this.url = getIntent().getStringExtra("url");
this.mUid = getIntent().getStringExtra("mUid");
this.title.setTitle(getString(R.string.push_tips));
this.title.setButton(0);
this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
@Override
public final void OnNavigationButtonClick(int i) {
PushInstructionsActivity.this.lambda$initTitle$0$PushInstructionsActivity(i);
}
});
}
public void lambda$initTitle$0$PushInstructionsActivity(int i) {
if (i != 0) {
return;
}
finish();
}
public void docx2html(String str, String str2, String str3, String str4) {
try {
File file = new File(str + str2);
if (!file.exists()) {
System.out.println("Sorry File does not Exists!");
} else {
if (!file.getName().endsWith(".docx") && !file.getName().endsWith(".DOCX")) {
System.out.println("Enter only MS Office 2007+ files");
}
XWPFDocument xWPFDocument = new XWPFDocument(new FileInputStream(file));
File file2 = new File(str);
XHTMLOptions URIResolver = XHTMLOptions.create().URIResolver(new FileURIResolver(file2));
URIResolver.setExtractor(new FileImageExtractor(file2));
URIResolver.setIgnoreStylesIfUnused(false);
URIResolver.setFragment(true);
XHTMLConverter.getInstance().convert(xWPFDocument, new FileOutputStream(new File(str4 + str3)), URIResolver);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean copyAssetAndWrite(String str, String str2) {
try {
File file = new File(str, str2);
if (file.exists()) {
if (file.length() > 10) {
return true;
}
} else if (!file.createNewFile()) {
return false;
}
InputStream open = getAssets().open(str2);
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] bArr = new byte[1024];
while (true) {
int read = open.read(bArr);
if (read != -1) {
fileOutputStream.write(bArr, 0, read);
} else {
fileOutputStream.flush();
open.close();
fileOutputStream.close();
return true;
}
}
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}