diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/onboarding/SignupFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/onboarding/SignupFragment.java index d457cca1f..68dbfeb57 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/onboarding/SignupFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/onboarding/SignupFragment.java @@ -1,18 +1,15 @@ package org.joinmastodon.android.fragments.onboarding; import android.app.ProgressDialog; -import android.graphics.Typeface; import android.os.Build; import android.os.Bundle; +import android.os.LocaleList; import android.text.Editable; -import android.text.Html; -import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.TextWatcher; import android.text.style.TypefaceSpan; -import android.text.style.URLSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -46,10 +43,13 @@ import org.jsoup.select.NodeVisitor; import org.parceler.Parcels; import java.time.ZoneId; +import java.util.Arrays; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; import androidx.annotation.Nullable; @@ -58,7 +58,6 @@ import me.grishka.appkit.api.APIRequest; import me.grishka.appkit.api.Callback; import me.grishka.appkit.api.ErrorResponse; import me.grishka.appkit.fragments.ToolbarFragment; -import me.grishka.appkit.utils.V; import me.grishka.appkit.views.FragmentRootLinearLayout; public class SignupFragment extends ToolbarFragment{ @@ -79,6 +78,7 @@ public class SignupFragment extends ToolbarFragment{ private ProgressDialog progressDialog; private HashSet errorFields=new HashSet<>(); private ElevationOnScrollListener onScrollListener; + private Set serverSupportedTimezones, serverSupportedLocales; @Override public void onCreate(Bundle savedInstanceState){ @@ -87,6 +87,8 @@ public class SignupFragment extends ToolbarFragment{ instance=Parcels.unwrap(getArguments().getParcelable("instance")); createAppAndGetToken(); setTitle(R.string.signup_title); + serverSupportedTimezones=Arrays.stream(getResources().getStringArray(R.array.server_supported_timezones)).collect(Collectors.toSet()); + serverSupportedLocales=Arrays.stream(getResources().getStringArray(R.array.server_supported_locales)).collect(Collectors.toSet()); } @Nullable @@ -190,7 +192,34 @@ public class SignupFragment extends ToolbarFragment{ edit.setError(null); } errorFields.clear(); - new RegisterAccount(username, email, password.getText().toString(), getResources().getConfiguration().locale.getLanguage(), reason.getText().toString(), ZoneId.systemDefault().getId()) + String locale=null; + String timezone=ZoneId.systemDefault().getId(); + + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){ + LocaleList localeList=getResources().getConfiguration().getLocales(); + for(int i=0;i(){ @Override public void onSuccess(Token result){ diff --git a/mastodon/src/main/res/values/signup_params.xml b/mastodon/src/main/res/values/signup_params.xml new file mode 100644 index 000000000..8f4285a4a --- /dev/null +++ b/mastodon/src/main/res/values/signup_params.xml @@ -0,0 +1,237 @@ + + + + Africa/Algiers + Africa/Cairo + Africa/Casablanca + Africa/Harare + Africa/Johannesburg + Africa/Monrovia + Africa/Nairobi + America/Argentina/Buenos_Aires + America/Bogota + America/Caracas + America/Chicago + America/Chihuahua + America/Denver + America/Godthab + America/Guatemala + America/Guyana + America/Halifax + America/Indiana/Indianapolis + America/Juneau + America/La_Paz + America/Lima + America/Los_Angeles + America/Mazatlan + America/Mexico_City + America/Monterrey + America/Montevideo + America/New_York + America/Phoenix + America/Puerto_Rico + America/Regina + America/Santiago + America/Sao_Paulo + America/St_Johns + America/Tijuana + Asia/Almaty + Asia/Baghdad + Asia/Baku + Asia/Bangkok + Asia/Chongqing + Asia/Colombo + Asia/Dhaka + Asia/Hong_Kong + Asia/Irkutsk + Asia/Jakarta + Asia/Jerusalem + Asia/Kabul + Asia/Kamchatka + Asia/Karachi + Asia/Kathmandu + Asia/Kolkata + Asia/Krasnoyarsk + Asia/Kuala_Lumpur + Asia/Kuwait + Asia/Magadan + Asia/Muscat + Asia/Novosibirsk + Asia/Rangoon + Asia/Riyadh + Asia/Seoul + Asia/Shanghai + Asia/Singapore + Asia/Srednekolymsk + Asia/Taipei + Asia/Tashkent + Asia/Tbilisi + Asia/Tehran + Asia/Tokyo + Asia/Ulaanbaatar + Asia/Urumqi + Asia/Vladivostok + Asia/Yakutsk + Asia/Yekaterinburg + Asia/Yerevan + Atlantic/Azores + Atlantic/Cape_Verde + Atlantic/South_Georgia + Australia/Adelaide + Australia/Brisbane + Australia/Canberra + Australia/Darwin + Australia/Hobart + Australia/Melbourne + Australia/Perth + Australia/Sydney + Etc/GMT+12 + Etc/UTC + Europe/Amsterdam + Europe/Athens + Europe/Belgrade + Europe/Berlin + Europe/Bratislava + Europe/Brussels + Europe/Bucharest + Europe/Budapest + Europe/Copenhagen + Europe/Dublin + Europe/Helsinki + Europe/Istanbul + Europe/Kaliningrad + Europe/Kiev + Europe/Lisbon + Europe/Ljubljana + Europe/London + Europe/Madrid + Europe/Minsk + Europe/Moscow + Europe/Paris + Europe/Prague + Europe/Riga + Europe/Rome + Europe/Samara + Europe/Sarajevo + Europe/Skopje + Europe/Sofia + Europe/Stockholm + Europe/Tallinn + Europe/Vienna + Europe/Vilnius + Europe/Volgograd + Europe/Warsaw + Europe/Zagreb + Europe/Zurich + Pacific/Apia + Pacific/Auckland + Pacific/Chatham + Pacific/Fakaofo + Pacific/Fiji + Pacific/Guadalcanal + Pacific/Guam + Pacific/Honolulu + Pacific/Majuro + Pacific/Midway + Pacific/Noumea + Pacific/Pago_Pago + Pacific/Port_Moresby + Pacific/Tongatapu + + + af + an + ar + ast + be + bg + bn + br + bs + ca + ckb + co + cs + cy + da + de + el + en + en-GB + eo + es + es-AR + es-MX + et + eu + fa + fi + fo + fr + fr-QC + fy + ga + gd + gl + he + hi + hr + hu + hy + id + ig + io + is + it + ja + ka + kab + kk + kn + ko + ku + kw + la + lt + lv + mk + ml + mr + ms + my + nl + nn + no + oc + pa + pl + pt-BR + pt-PT + ro + ru + sa + sc + sco + si + sk + sl + sq + sr + sr-Latn + sv + szl + ta + te + th + tr + tt + ug + uk + ur + vi + zgh + zh-CN + zh-HK + zh-TW + + \ No newline at end of file