Fixed formatting issues

This commit is contained in:
Automata-Development 2017-12-09 08:42:00 -07:00 committed by Isaac Hutt
parent fe3c0b83b7
commit 44d1a11236
3 changed files with 123 additions and 129 deletions

View File

@ -336,19 +336,19 @@ public class KiwixSettingsActivity extends AppCompatActivity {
String selectedLang = sharedPreferences.getString(PREF_LANG, Locale.getDefault().toString()); String selectedLang = sharedPreferences.getString(PREF_LANG, Locale.getDefault().toString());
new LanguageSelectDialog.Builder(getActivity(), dialogStyle()) new LanguageSelectDialog.Builder(getActivity(), dialogStyle())
.setLanguages(languageUtils.getLanguageList()) .setLanguages(languageUtils.getLanguageList())
.setSingleSelect(true) .setSingleSelect(true)
.setSelectedLanguage(selectedLang) .setSelectedLanguage(selectedLang)
.setOnLanguageSelectedListener((languageCode -> { .setOnLanguageSelectedListener((languageCode -> {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_LANG, languageCode); editor.putString(PREF_LANG, languageCode);
editor.apply(); editor.apply();
LanguageUtils.handleLocaleChange(getActivity(), languageCode); LanguageUtils.handleLocaleChange(getActivity(), languageCode);
// Request a restart when the user returns to the Activity, that called this Activity // Request a restart when the user returns to the Activity, that called this Activity
restartActivity(); restartActivity();
})) }))
.show(); .show();
} }
public void openFolderSelect(){ public void openFolderSelect(){

View File

@ -24,28 +24,28 @@ import java.util.Map;
*/ */
public class LanguageSelectDialog extends AlertDialog { public class LanguageSelectDialog extends AlertDialog {
protected LanguageSelectDialog(@NonNull Context context) { protected LanguageSelectDialog(@NonNull Context context) {
super(context); super(context);
} }
public static class Builder extends AlertDialog.Builder { public static class Builder extends AlertDialog.Builder {
private List<LibraryAdapter.Language> languages; private List<LibraryAdapter.Language> languages;
private Map<String, Integer> languageCounts; private Map<String, Integer> languageCounts;
private boolean singleSelect = false; private boolean singleSelect = false;
private String selectedLanguage; private String selectedLanguage;
private OnLanguageSelectedListener languageSelectedListener; private OnLanguageSelectedListener languageSelectedListener;
public Builder(@NonNull Context context) { public Builder(@NonNull Context context) {
super(context); super(context);
} }
public Builder(@NonNull Context context, int themeResId) { public Builder(@NonNull Context context, int themeResId) {
super(context, themeResId); super(context, themeResId);
} }
public Builder setLanguages(List<LibraryAdapter.Language> languages) { public Builder setLanguages(List<LibraryAdapter.Language> languages) {
this.languages = languages; this.languages = languages;
return this; return this;
} }
public Builder setLanguageCounts(Map<String, Integer> languageCounts) { public Builder setLanguageCounts(Map<String, Integer> languageCounts) {
@ -54,44 +54,42 @@ public class LanguageSelectDialog extends AlertDialog {
} }
public Builder setSingleSelect(boolean singleSelect) { public Builder setSingleSelect(boolean singleSelect) {
this.singleSelect = singleSelect; this.singleSelect = singleSelect;
return this; return this;
} }
// Should only be called if setSingleSelect has previously been called with a value of true // Should only be called if setSingleSelect has previously been called with a value of true
public Builder setSelectedLanguage(String languageCode) { public Builder setSelectedLanguage(String languageCode) {
this.selectedLanguage = languageCode; this.selectedLanguage = languageCode;
return this; return this;
} }
// Should only be called if setSingleSelect has previously been called with a value of true // Should only be called if setSingleSelect has previously been called with a value of true
public Builder setOnLanguageSelectedListener(OnLanguageSelectedListener listener) { public Builder setOnLanguageSelectedListener(OnLanguageSelectedListener listener) {
languageSelectedListener = listener; languageSelectedListener = listener;
return this; return this;
} }
@Override @Override
public AlertDialog create() { public AlertDialog create() {
LinearLayout view = (LinearLayout) View.inflate(getContext(), R.layout.language_selection, null); LinearLayout view = (LinearLayout) View
ListView listView = view.findViewById(R.id.language_check_view); .inflate(getContext(), R.layout.language_selection, null);
int size = 0; ListView listView = view.findViewById(R.id.language_check_view);
try { int size = 0;
size = languages.size(); try {
} catch (NullPointerException e) { size = languages.size();
e.printStackTrace(); } catch (NullPointerException e) {
e.printStackTrace();
} }
if (size == 0) { if (size == 0) {
Toast.makeText(getContext(), getContext().getResources().getString(R.string.wait_for_load), Toast.LENGTH_LONG).show(); Toast.makeText(getContext(), getContext().getResources().getString(R.string.wait_for_load),
} Toast.LENGTH_LONG).show();
LanguageArrayAdapter languageArrayAdapter = new LanguageArrayAdapter(getContext(), }
0, LanguageArrayAdapter languageArrayAdapter = new LanguageArrayAdapter(getContext(), 0,
languages, languages, languageCounts, singleSelect, selectedLanguage);
languageCounts, listView.setAdapter(languageArrayAdapter);
singleSelect, setView(view);
selectedLanguage);
listView.setAdapter(languageArrayAdapter);
setView(view);
if (languageSelectedListener != null) { if (languageSelectedListener != null) {
setPositiveButton(android.R.string.ok, ((dialog, which) -> { setPositiveButton(android.R.string.ok, ((dialog, which) -> {
@ -99,73 +97,69 @@ public class LanguageSelectDialog extends AlertDialog {
})); }));
} }
return super.create(); return super.create();
} }
} }
private static class LanguageArrayAdapter extends ArrayAdapter<LibraryAdapter.Language> { private static class LanguageArrayAdapter extends ArrayAdapter<LibraryAdapter.Language> {
private Map<String, Integer> languageCounts; private Map<String, Integer> languageCounts;
private Context context; private Context context;
private boolean singleSelect; private boolean singleSelect;
private String selectedLanguage; private String selectedLanguage;
public LanguageArrayAdapter(Context context, public LanguageArrayAdapter(Context context, int textViewResourceId, List<LibraryAdapter.Language> languages,
int textViewResourceId, Map<String, Integer> languageCounts, boolean singleSelect, String selectedLanguage) {
List<LibraryAdapter.Language> languages, super(context, textViewResourceId, languages);
Map<String, Integer> languageCounts, this.languageCounts = languageCounts;
boolean singleSelect, this.context = context;
String selectedLanguage) { this.singleSelect = singleSelect;
super(context, textViewResourceId, languages);
this.languageCounts = languageCounts;
this.context = context;
this.singleSelect = singleSelect;
this.selectedLanguage = selectedLanguage; this.selectedLanguage = selectedLanguage;
} }
@NonNull @NonNull
@Override @Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) { public View getView(int position, View convertView, @NonNull ViewGroup parent) {
LanguageArrayAdapter.ViewHolder holder; LanguageArrayAdapter.ViewHolder holder;
if (convertView == null) { if (convertView == null) {
convertView = View.inflate(getContext(), R.layout.language_check_item, null); convertView = View.inflate(getContext(), R.layout.language_check_item, null);
holder = new LanguageArrayAdapter.ViewHolder(); holder = new LanguageArrayAdapter.ViewHolder();
holder.row = convertView.findViewById(R.id.language_row); holder.row = convertView.findViewById(R.id.language_row);
holder.checkBox = convertView.findViewById(R.id.language_checkbox); holder.checkBox = convertView.findViewById(R.id.language_checkbox);
holder.language = convertView.findViewById(R.id.language_name); holder.language = convertView.findViewById(R.id.language_name);
holder.languageLocalized = convertView.findViewById(R.id.language_name_localized); holder.languageLocalized = convertView.findViewById(R.id.language_name_localized);
holder.languageEntriesCount = convertView.findViewById(R.id.language_entries_count); holder.languageEntriesCount = convertView.findViewById(R.id.language_entries_count);
convertView.setTag(holder); convertView.setTag(holder);
} else {
holder = (LanguageArrayAdapter.ViewHolder) convertView.getTag();
}
// Set event listeners first, since updating the default values can trigger them.
holder.row.setOnClickListener((view) -> holder.checkBox.toggle());
holder.checkBox.setOnCheckedChangeListener((compoundButton, b) -> getItem(position).active = b);
LibraryAdapter.Language language = getItem(position);
holder.language.setText(language.language);
holder.languageLocalized.setText(language.languageLocalized);
if (languageCounts != null) {
holder.languageEntriesCount.setText(
context.getString(R.string.language_count,
languageCounts.get(language.languageCode)));
} else { } else {
holder.languageEntriesCount.setVisibility(View.GONE); holder = (LanguageArrayAdapter.ViewHolder) convertView.getTag();
}
// Set event listeners first, since updating the default values can trigger them.
holder.row.setOnClickListener((view) -> holder.checkBox.toggle());
holder.checkBox
.setOnCheckedChangeListener((compoundButton, b) -> getItem(position).active = b);
LibraryAdapter.Language language = getItem(position);
holder.language.setText(language.language);
holder.languageLocalized.setText(language.languageLocalized);
if (languageCounts != null) {
holder.languageEntriesCount.setText(context.getString(R.string.language_count,
languageCounts.get(language.languageCode)));
} else {
holder.languageEntriesCount.setVisibility(View.GONE);
} }
if (!singleSelect) { if (!singleSelect) {
holder.checkBox.setChecked(language.active); holder.checkBox.setChecked(language.active);
} else { } else {
holder.checkBox.setClickable(false); holder.checkBox.setClickable(false);
holder.checkBox.setFocusable(false); holder.checkBox.setFocusable(false);
if (getSelectedLanguage().equalsIgnoreCase(language.languageCodeISO2)) { if (getSelectedLanguage().equalsIgnoreCase(language.languageCodeISO2)) {
holder.checkBox.setChecked(true); holder.checkBox.setChecked(true);
} else { } else {
holder.checkBox.setChecked(false); holder.checkBox.setChecked(false);
} }
convertView.setOnClickListener((v -> { convertView.setOnClickListener((v -> {
@ -174,8 +168,8 @@ public class LanguageSelectDialog extends AlertDialog {
})); }));
} }
return convertView; return convertView;
} }
public String getSelectedLanguage() { public String getSelectedLanguage() {
return selectedLanguage; return selectedLanguage;
@ -185,19 +179,19 @@ public class LanguageSelectDialog extends AlertDialog {
this.selectedLanguage = selectedLanguage; this.selectedLanguage = selectedLanguage;
} }
// We are using the ViewHolder pattern in order to optimize the ListView by reusing // We are using the ViewHolder pattern in order to optimize the ListView by reusing
// Views and saving them to this mLibrary class, and not inflating the layout every time // Views and saving them to this mLibrary class, and not inflating the layout every time
// we need to create a row. // we need to create a row.
private class ViewHolder { private class ViewHolder {
ViewGroup row; ViewGroup row;
CheckBox checkBox; CheckBox checkBox;
TextView language; TextView language;
TextView languageLocalized; TextView languageLocalized;
TextView languageEntriesCount; TextView languageEntriesCount;
} }
} }
public interface OnLanguageSelectedListener { public interface OnLanguageSelectedListener {
void onLanguageSelected(String languageCode); void onLanguageSelected(String languageCode);
} }
} }

View File

@ -224,13 +224,13 @@ public class ZimManageActivity extends AppCompatActivity {
private void showLanguageSelect() { private void showLanguageSelect() {
new LanguageSelectDialog.Builder(this, dialogStyle()) new LanguageSelectDialog.Builder(this, dialogStyle())
.setLanguages(mSectionsPagerAdapter.libraryFragment.libraryAdapter.languages) .setLanguages(mSectionsPagerAdapter.libraryFragment.libraryAdapter.languages)
.setLanguageCounts(mSectionsPagerAdapter.libraryFragment.libraryAdapter.languageCounts) .setLanguageCounts(mSectionsPagerAdapter.libraryFragment.libraryAdapter.languageCounts)
.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> { .setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
mSectionsPagerAdapter.libraryFragment.libraryAdapter.updateNetworkLanguages(); mSectionsPagerAdapter.libraryFragment.libraryAdapter.updateNetworkLanguages();
mSectionsPagerAdapter.libraryFragment.libraryAdapter.getFilter().filter(searchQuery); mSectionsPagerAdapter.libraryFragment.libraryAdapter.getFilter().filter(searchQuery);
}) })
.show(); .show();
} }
/** /**