diff --git a/res/menu/main.xml b/res/menu/main.xml
index 6ca4aed2d..f11ec6d3b 100644
--- a/res/menu/main.xml
+++ b/res/menu/main.xml
@@ -20,6 +20,7 @@
@@ -38,7 +39,8 @@
@@ -50,10 +52,12 @@
diff --git a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
index 723971a4b..c744e5232 100644
--- a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
+++ b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java
@@ -1,10 +1,8 @@
package org.kiwix.kiwixmobile;
-import java.io.ByteArrayOutputStream;
+
import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -48,12 +46,14 @@ public class KiwixMobileActivity extends Activity {
private WebView webView;
private ArrayAdapter adapter;
protected boolean requestClearHistoryAfterLoad;
+ protected boolean requestShowAllMenuItems;
protected int requestWebReloadOnFinished;
private static final int ZIMFILESELECT_REQUEST_CODE = 1234;
private static final int PREFERENCES_REQUEST_CODE = 1235;
private static final String PREFS_KIWIX_MOBILE = "kiwix-mobile";
private AutoCompleteTextView articleSearchtextView;
private LinearLayout articleSearchBar;
+ private Menu menu;
public class AutoCompleteAdapter extends ArrayAdapter implements Filterable {
@@ -121,6 +121,7 @@ public class KiwixMobileActivity extends Activity {
super.onCreate(savedInstanceState);
requestClearHistoryAfterLoad=false;
requestWebReloadOnFinished = 0;
+ requestShowAllMenuItems = false;
this.requestWindowFeature(Window.FEATURE_PROGRESS);
@@ -330,6 +331,11 @@ public class KiwixMobileActivity extends Activity {
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
+
+ this.menu = menu;
+ if (requestShowAllMenuItems) {
+ showAllMenuItems();
+ }
return true;
}
@@ -350,7 +356,7 @@ public class KiwixMobileActivity extends Activity {
webView.showFindDialog("", true);
break;
case R.id.menu_home:
- loadMainPage();
+ openMainPage();
break;
case R.id.menu_forward:
if(webView.canGoForward() == true){
@@ -414,28 +420,7 @@ public class KiwixMobileActivity extends Activity {
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
- private String readTextFromResource(int resourceID)
- {
- InputStream raw = getResources().openRawResource(resourceID);
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- int i;
- try
- {
- i = raw.read();
- while (i != -1)
- {
- stream.write(i);
- i = raw.read();
- }
- raw.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- return stream.toString();
- }
-
+
private void showWelcome() {
webView.loadUrl("file:///android_res/raw/welcome.html");
}
@@ -448,7 +433,6 @@ public class KiwixMobileActivity extends Activity {
webView.loadUrl("file:///android_res/raw/help.html");
}
-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
@@ -494,7 +478,14 @@ public class KiwixMobileActivity extends Activity {
// but to be on save side don't clear history in such cases.
if (clearHistory)
requestClearHistoryAfterLoad=true;
- loadMainPage();
+ if (menu!=null) {
+ showAllMenuItems();
+ } else {
+ // Menu may not be initialized yet. In this case
+ // signal to menu create to show
+ requestShowAllMenuItems = true;
+ }
+ openMainPage();
return true;
} else {
Toast.makeText(this, getResources().getString(R.string.error_fileinvalid), Toast.LENGTH_LONG).show();
@@ -506,12 +497,14 @@ public class KiwixMobileActivity extends Activity {
return false;
}
- private void loadMainPage() {
- String article = ZimContentProvider.getMainPage();
- webView.loadUrl(Uri.parse(ZimContentProvider.CONTENT_URI
- + article).toString());
+ private void showAllMenuItems() {
+ menu.findItem(R.id.menu_home).setVisible(true);
+ menu.findItem(R.id.menu_randomarticle).setVisible(true);
+ menu.findItem(R.id.menu_search).setVisible(true);
}
+
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
@@ -571,7 +564,10 @@ public class KiwixMobileActivity extends Activity {
}
-
+ private boolean openMainPage() {
+ String articleUrl = ZimContentProvider.getMainPage();
+ return openArticle(articleUrl);
+ }
public boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
diff --git a/src/org/kiwix/kiwixmobile/ZimContentProvider.java b/src/org/kiwix/kiwixmobile/ZimContentProvider.java
index e68237351..aae50a5ef 100644
--- a/src/org/kiwix/kiwixmobile/ZimContentProvider.java
+++ b/src/org/kiwix/kiwixmobile/ZimContentProvider.java
@@ -56,7 +56,7 @@ public class ZimContentProvider extends ContentProvider {
return zimFileName;
}
public static String getZimFileTitle() {
- if (jniKiwix==null)
+ if (jniKiwix==null || zimFileName==null)
return null;
else {
JNIKiwixString title = new JNIKiwixString();
@@ -67,10 +67,8 @@ public class ZimContentProvider extends ContentProvider {
}
}
- public native boolean getTitle(JNIKiwixString title);
-
- public static String getMainPage() {
- if (jniKiwix==null)
+ public static String getMainPage() {
+ if (jniKiwix==null || zimFileName==null)
return null;
else {
return jniKiwix.getMainPage();
@@ -78,7 +76,7 @@ public class ZimContentProvider extends ContentProvider {
}
public static boolean searchSuggestions(String prefix, int count) {
- if (jniKiwix==null)
+ if (jniKiwix==null || zimFileName==null)
return false;
else {
return jniKiwix.searchSuggestions(prefix, count);
@@ -86,7 +84,7 @@ public class ZimContentProvider extends ContentProvider {
}
public static String getNextSuggestion() {
- if (jniKiwix==null)
+ if (jniKiwix==null || zimFileName==null)
return null;
else {
JNIKiwixString title=new JNIKiwixString();
@@ -100,7 +98,7 @@ public class ZimContentProvider extends ContentProvider {
}
public static String getPageUrlFromTitle(String title) {
- if (jniKiwix==null)
+ if (jniKiwix==null || zimFileName==null)
return null;
else {
JNIKiwixString url=new JNIKiwixString();
@@ -113,7 +111,7 @@ public class ZimContentProvider extends ContentProvider {
}
public static String getRandomArticleUrl() {
- if (jniKiwix==null)
+ if (jniKiwix==null || zimFileName==null)
return null;
else {
JNIKiwixString url=new JNIKiwixString();