mirror of https://github.com/tasks/tasks
Convert LocalePickerDialog to Kotlin
parent
7590984531
commit
f77b6e48dd
@ -1,55 +0,0 @@
|
||||
package org.tasks.locale;
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static com.google.common.collect.Lists.transform;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import org.tasks.R;
|
||||
import org.tasks.dialogs.DialogBuilder;
|
||||
import org.tasks.injection.DialogFragmentComponent;
|
||||
import org.tasks.injection.InjectingDialogFragment;
|
||||
|
||||
public class LocalePickerDialog extends InjectingDialogFragment {
|
||||
|
||||
public static final String EXTRA_LOCALE = "extra_locale";
|
||||
|
||||
@Inject DialogBuilder dialogBuilder;
|
||||
@Inject Locale locale;
|
||||
|
||||
public static LocalePickerDialog newLocalePickerDialog() {
|
||||
return new LocalePickerDialog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final List<Locale> locales = new ArrayList<>();
|
||||
locales.add(locale.withLanguage(null)); // device locale
|
||||
for (String override : getResources().getStringArray(R.array.localization)) {
|
||||
locales.add(locale.withLanguage(override));
|
||||
}
|
||||
List<String> display = transform(locales, Locale::getDisplayName);
|
||||
return dialogBuilder
|
||||
.newDialog()
|
||||
.setSingleChoiceItems(
|
||||
display,
|
||||
display.indexOf(locale.getDisplayName()),
|
||||
(dialogInterface, i) -> {
|
||||
Locale locale = locales.get(i);
|
||||
Intent data = new Intent().putExtra(EXTRA_LOCALE, locale);
|
||||
getTargetFragment().onActivityResult(getTargetRequestCode(), RESULT_OK, data);
|
||||
dialogInterface.dismiss();
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void inject(DialogFragmentComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package org.tasks.locale
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.Dialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import org.tasks.R
|
||||
import org.tasks.dialogs.DialogBuilder
|
||||
import org.tasks.injection.DialogFragmentComponent
|
||||
import org.tasks.injection.InjectingDialogFragment
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
class LocalePickerDialog : InjectingDialogFragment() {
|
||||
@Inject lateinit var dialogBuilder: DialogBuilder
|
||||
@Inject lateinit var locale: Locale
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val locales = ArrayList<Locale>()
|
||||
locales.add(locale.withLanguage(null)) // device locale
|
||||
for (override in resources.getStringArray(R.array.localization)) {
|
||||
locales.add(locale.withLanguage(override))
|
||||
}
|
||||
val display = locales.map(Locale::getDisplayName)
|
||||
return dialogBuilder
|
||||
.newDialog()
|
||||
.setSingleChoiceItems(display, display.indexOf(locale.displayName)) { dialog, which ->
|
||||
val locale = locales[which]
|
||||
val data = Intent().putExtra(EXTRA_LOCALE, locale)
|
||||
targetFragment!!.onActivityResult(targetRequestCode, Activity.RESULT_OK, data)
|
||||
dialog.dismiss()
|
||||
}
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
|
||||
override fun inject(component: DialogFragmentComponent) = component.inject(this)
|
||||
|
||||
companion object {
|
||||
const val EXTRA_LOCALE = "extra_locale"
|
||||
fun newLocalePickerDialog(): LocalePickerDialog {
|
||||
return LocalePickerDialog()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue