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());
new LanguageSelectDialog.Builder(getActivity(), dialogStyle())
.setLanguages(languageUtils.getLanguageList())
.setSingleSelect(true)
.setSelectedLanguage(selectedLang)
.setOnLanguageSelectedListener((languageCode -> {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_LANG, languageCode);
editor.apply();
.setLanguages(languageUtils.getLanguageList())
.setSingleSelect(true)
.setSelectedLanguage(selectedLang)
.setOnLanguageSelectedListener((languageCode -> {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(PREF_LANG, languageCode);
editor.apply();
LanguageUtils.handleLocaleChange(getActivity(), languageCode);
// Request a restart when the user returns to the Activity, that called this Activity
restartActivity();
}))
.show();
LanguageUtils.handleLocaleChange(getActivity(), languageCode);
// Request a restart when the user returns to the Activity, that called this Activity
restartActivity();
}))
.show();
}
public void openFolderSelect(){

View File

@ -24,28 +24,28 @@ import java.util.Map;
*/
public class LanguageSelectDialog extends AlertDialog {
protected LanguageSelectDialog(@NonNull Context context) {
super(context);
}
protected LanguageSelectDialog(@NonNull Context context) {
super(context);
}
public static class Builder extends AlertDialog.Builder {
private List<LibraryAdapter.Language> languages;
private Map<String, Integer> languageCounts;
private boolean singleSelect = false;
private String selectedLanguage;
private OnLanguageSelectedListener languageSelectedListener;
public static class Builder extends AlertDialog.Builder {
private List<LibraryAdapter.Language> languages;
private Map<String, Integer> languageCounts;
private boolean singleSelect = false;
private String selectedLanguage;
private OnLanguageSelectedListener languageSelectedListener;
public Builder(@NonNull Context context) {
super(context);
}
public Builder(@NonNull Context context) {
super(context);
}
public Builder(@NonNull Context context, int themeResId) {
super(context, themeResId);
}
public Builder(@NonNull Context context, int themeResId) {
super(context, themeResId);
}
public Builder setLanguages(List<LibraryAdapter.Language> languages) {
this.languages = languages;
return this;
public Builder setLanguages(List<LibraryAdapter.Language> languages) {
this.languages = languages;
return this;
}
public Builder setLanguageCounts(Map<String, Integer> languageCounts) {
@ -54,44 +54,42 @@ public class LanguageSelectDialog extends AlertDialog {
}
public Builder setSingleSelect(boolean singleSelect) {
this.singleSelect = singleSelect;
return this;
this.singleSelect = singleSelect;
return this;
}
// Should only be called if setSingleSelect has previously been called with a value of true
public Builder setSelectedLanguage(String languageCode) {
this.selectedLanguage = languageCode;
return this;
this.selectedLanguage = languageCode;
return this;
}
// Should only be called if setSingleSelect has previously been called with a value of true
public Builder setOnLanguageSelectedListener(OnLanguageSelectedListener listener) {
languageSelectedListener = listener;
return this;
languageSelectedListener = listener;
return this;
}
@Override
public AlertDialog create() {
LinearLayout view = (LinearLayout) View.inflate(getContext(), R.layout.language_selection, null);
ListView listView = view.findViewById(R.id.language_check_view);
int size = 0;
try {
size = languages.size();
} catch (NullPointerException e) {
e.printStackTrace();
@Override
public AlertDialog create() {
LinearLayout view = (LinearLayout) View
.inflate(getContext(), R.layout.language_selection, null);
ListView listView = view.findViewById(R.id.language_check_view);
int size = 0;
try {
size = languages.size();
} catch (NullPointerException e) {
e.printStackTrace();
}
if (size == 0) {
Toast.makeText(getContext(), getContext().getResources().getString(R.string.wait_for_load), Toast.LENGTH_LONG).show();
}
LanguageArrayAdapter languageArrayAdapter = new LanguageArrayAdapter(getContext(),
0,
languages,
languageCounts,
singleSelect,
selectedLanguage);
listView.setAdapter(languageArrayAdapter);
setView(view);
if (size == 0) {
Toast.makeText(getContext(), getContext().getResources().getString(R.string.wait_for_load),
Toast.LENGTH_LONG).show();
}
LanguageArrayAdapter languageArrayAdapter = new LanguageArrayAdapter(getContext(), 0,
languages, languageCounts, singleSelect, selectedLanguage);
listView.setAdapter(languageArrayAdapter);
setView(view);
if (languageSelectedListener != null) {
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 Map<String, Integer> languageCounts;
private Context context;
private boolean singleSelect;
private static class LanguageArrayAdapter extends ArrayAdapter<LibraryAdapter.Language> {
private Map<String, Integer> languageCounts;
private Context context;
private boolean singleSelect;
private String selectedLanguage;
public LanguageArrayAdapter(Context context,
int textViewResourceId,
List<LibraryAdapter.Language> languages,
Map<String, Integer> languageCounts,
boolean singleSelect,
String selectedLanguage) {
super(context, textViewResourceId, languages);
this.languageCounts = languageCounts;
this.context = context;
this.singleSelect = singleSelect;
public LanguageArrayAdapter(Context context, int textViewResourceId, List<LibraryAdapter.Language> languages,
Map<String, Integer> languageCounts, boolean singleSelect, String selectedLanguage) {
super(context, textViewResourceId, languages);
this.languageCounts = languageCounts;
this.context = context;
this.singleSelect = singleSelect;
this.selectedLanguage = selectedLanguage;
}
@NonNull
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
LanguageArrayAdapter.ViewHolder holder;
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
LanguageArrayAdapter.ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(getContext(), R.layout.language_check_item, null);
holder = new LanguageArrayAdapter.ViewHolder();
holder.row = convertView.findViewById(R.id.language_row);
holder.checkBox = convertView.findViewById(R.id.language_checkbox);
holder.language = convertView.findViewById(R.id.language_name);
holder.languageLocalized = convertView.findViewById(R.id.language_name_localized);
holder.languageEntriesCount = convertView.findViewById(R.id.language_entries_count);
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)));
if (convertView == null) {
convertView = View.inflate(getContext(), R.layout.language_check_item, null);
holder = new LanguageArrayAdapter.ViewHolder();
holder.row = convertView.findViewById(R.id.language_row);
holder.checkBox = convertView.findViewById(R.id.language_checkbox);
holder.language = convertView.findViewById(R.id.language_name);
holder.languageLocalized = convertView.findViewById(R.id.language_name_localized);
holder.languageEntriesCount = convertView.findViewById(R.id.language_entries_count);
convertView.setTag(holder);
} 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) {
holder.checkBox.setChecked(language.active);
} else {
holder.checkBox.setClickable(false);
holder.checkBox.setFocusable(false);
holder.checkBox.setClickable(false);
holder.checkBox.setFocusable(false);
if (getSelectedLanguage().equalsIgnoreCase(language.languageCodeISO2)) {
holder.checkBox.setChecked(true);
if (getSelectedLanguage().equalsIgnoreCase(language.languageCodeISO2)) {
holder.checkBox.setChecked(true);
} else {
holder.checkBox.setChecked(false);
holder.checkBox.setChecked(false);
}
convertView.setOnClickListener((v -> {
@ -174,8 +168,8 @@ public class LanguageSelectDialog extends AlertDialog {
}));
}
return convertView;
}
return convertView;
}
public String getSelectedLanguage() {
return selectedLanguage;
@ -185,19 +179,19 @@ public class LanguageSelectDialog extends AlertDialog {
this.selectedLanguage = selectedLanguage;
}
// 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
// we need to create a row.
private class ViewHolder {
ViewGroup row;
CheckBox checkBox;
TextView language;
TextView languageLocalized;
TextView languageEntriesCount;
}
}
// 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
// we need to create a row.
private class ViewHolder {
ViewGroup row;
CheckBox checkBox;
TextView language;
TextView languageLocalized;
TextView languageEntriesCount;
}
}
public interface OnLanguageSelectedListener {
void onLanguageSelected(String languageCode);
public interface OnLanguageSelectedListener {
void onLanguageSelected(String languageCode);
}
}

View File

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