Modified home page drawer behaviour (#719)

* Fixed drawer tests in other languages

* Restructured getResourceString
This commit is contained in:
Joe Reeve 2018-06-04 19:22:23 +01:00 committed by Abdul Wadood
parent 3e4b8be1fc
commit d9e73de4ad
4 changed files with 38 additions and 6 deletions

View File

@ -2,6 +2,9 @@
<html>
<head>
<meta charset="UTF-8"/>
<title>Home</title>
<title>REPLACE_menu_home</title>
</head>
<body>
<h1 style="display:none;">REPLACE_menu_home</h1>
</body>
</html>

View File

@ -140,6 +140,7 @@ import static org.kiwix.kiwixmobile.utils.Constants.TAG_CURRENT_POSITIONS;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_CURRENT_TAB;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_FILE_SEARCHED;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX;
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl;
@ -393,8 +394,17 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
documentParser = new DocumentParser(new DocumentParser.SectionsListener() {
@Override
public void sectionsLoaded(String title, List<DocumentSection> sections) {
for (DocumentSection section : sections) {
if (section.title.contains("REPLACE_")) {
section.title = getResourceString(getApplicationContext(), section.title);
}
}
documentSections.addAll(sections);
tableDrawerAdapter.setTitle(title);
if (title.contains("REPLACE_")) {
tableDrawerAdapter.setTitle(getResourceString(getApplicationContext(), title));
} else {
tableDrawerAdapter.setTitle(title);
}
tableDrawerAdapter.setSections(documentSections);
tableDrawerAdapter.notifyDataSetChanged();
}

View File

@ -39,6 +39,7 @@ import static org.kiwix.kiwixmobile.utils.DimenUtils.getToolbarHeight;
import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowHeight;
import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowWidth;
import static org.kiwix.kiwixmobile.utils.ImageUtils.getBitmapFromView;
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
import static org.kiwix.kiwixmobile.utils.StyleUtils.fromHtml;
public class TabsAdapter extends RecyclerView.Adapter<TabsAdapter.ViewHolder> {
@ -113,7 +114,11 @@ public class TabsAdapter extends RecyclerView.Adapter<TabsAdapter.ViewHolder> {
if (webView.getParent() != null) {
((ViewGroup) webView.getParent()).removeView(webView);
}
holder.title.setText(fromHtml(webView.getTitle()));
String webViewTitle = fromHtml(webView.getTitle()).toString();
if (webViewTitle.contains("REPLACE_")) {
webViewTitle = getResourceString(holder.title.getContext().getApplicationContext(), webViewTitle);
}
holder.title.setText(webViewTitle);
holder.close.setOnClickListener(v -> listener.onCloseTab(v, holder.getAdapterPosition()));
holder.content.setImageBitmap(getBitmapFromView(webView));
holder.content.setOnClickListener(v -> {

View File

@ -107,10 +107,10 @@ public class LanguageUtils {
return mLocaleMap.get(iso3.toUpperCase());
}
public static Locale getCurrentLocale(Context context){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
public static Locale getCurrentLocale(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return context.getResources().getConfiguration().getLocales().get(0);
} else{
} else {
//noinspection deprecation
return context.getResources().getConfiguration().locale;
}
@ -151,6 +151,20 @@ public class LanguageUtils {
return "fonts/DejaVuSansCondensed.ttf";
}
public static String getResourceString(Context appContext, String str) {
String resourceName = str;
if (resourceName.contains("REPLACE_")) {
resourceName = resourceName.replace("REPLACE_", "");
}
int resourceId = appContext.getResources()
.getIdentifier(
resourceName,
"string",
appContext.getPackageName()
);
return appContext.getResources().getString(resourceId);
}
// Read the language codes, that are supported in this app from the locales.txt file
private void getLanguageCodesFromAssets() {