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> <html>
<head> <head>
<meta charset="UTF-8"/> <meta charset="UTF-8"/>
<title>Home</title> <title>REPLACE_menu_home</title>
</head> </head>
<body>
<h1 style="display:none;">REPLACE_menu_home</h1>
</body>
</html> </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_CURRENT_TAB;
import static org.kiwix.kiwixmobile.utils.Constants.TAG_FILE_SEARCHED; 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.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.StyleUtils.dialogStyle;
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl; 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() { documentParser = new DocumentParser(new DocumentParser.SectionsListener() {
@Override @Override
public void sectionsLoaded(String title, List<DocumentSection> sections) { 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); documentSections.addAll(sections);
tableDrawerAdapter.setTitle(title); if (title.contains("REPLACE_")) {
tableDrawerAdapter.setTitle(getResourceString(getApplicationContext(), title));
} else {
tableDrawerAdapter.setTitle(title);
}
tableDrawerAdapter.setSections(documentSections); tableDrawerAdapter.setSections(documentSections);
tableDrawerAdapter.notifyDataSetChanged(); 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.getWindowHeight;
import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowWidth; import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowWidth;
import static org.kiwix.kiwixmobile.utils.ImageUtils.getBitmapFromView; import static org.kiwix.kiwixmobile.utils.ImageUtils.getBitmapFromView;
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
import static org.kiwix.kiwixmobile.utils.StyleUtils.fromHtml; import static org.kiwix.kiwixmobile.utils.StyleUtils.fromHtml;
public class TabsAdapter extends RecyclerView.Adapter<TabsAdapter.ViewHolder> { public class TabsAdapter extends RecyclerView.Adapter<TabsAdapter.ViewHolder> {
@ -113,7 +114,11 @@ public class TabsAdapter extends RecyclerView.Adapter<TabsAdapter.ViewHolder> {
if (webView.getParent() != null) { if (webView.getParent() != null) {
((ViewGroup) webView.getParent()).removeView(webView); ((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.close.setOnClickListener(v -> listener.onCloseTab(v, holder.getAdapterPosition()));
holder.content.setImageBitmap(getBitmapFromView(webView)); holder.content.setImageBitmap(getBitmapFromView(webView));
holder.content.setOnClickListener(v -> { holder.content.setOnClickListener(v -> {

View File

@ -107,10 +107,10 @@ public class LanguageUtils {
return mLocaleMap.get(iso3.toUpperCase()); return mLocaleMap.get(iso3.toUpperCase());
} }
public static Locale getCurrentLocale(Context context){ public static Locale getCurrentLocale(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return context.getResources().getConfiguration().getLocales().get(0); return context.getResources().getConfiguration().getLocales().get(0);
} else{ } else {
//noinspection deprecation //noinspection deprecation
return context.getResources().getConfiguration().locale; return context.getResources().getConfiguration().locale;
} }
@ -151,6 +151,20 @@ public class LanguageUtils {
return "fonts/DejaVuSansCondensed.ttf"; 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 // Read the language codes, that are supported in this app from the locales.txt file
private void getLanguageCodesFromAssets() { private void getLanguageCodesFromAssets() {