diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f9a10cce..8708f770 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -126,9 +126,6 @@
-
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsAppearanceActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsAppearanceActivity.java
index aaa16ada..1f57e765 100644
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsAppearanceActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/SettingsAppearanceActivity.java
@@ -11,6 +11,8 @@ import android.widget.TimePicker;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import java.util.LinkedHashMap;
+import java.util.Locale;
import org.mian.gitnex.R;
import org.mian.gitnex.databinding.ActivitySettingsAppearanceBinding;
import org.mian.gitnex.fragments.SettingsFragment;
@@ -29,6 +31,7 @@ public class SettingsAppearanceActivity extends BaseActivity {
private static String[] themeList;
private static int themeSelectedChoice = 0;
private View.OnClickListener onClickListener;
+ private static int langSelectedChoice = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -39,6 +42,12 @@ public class SettingsAppearanceActivity extends BaseActivity {
ActivitySettingsAppearanceBinding.inflate(getLayoutInflater());
setContentView(activitySettingsAppearanceBinding.getRoot());
+ LinkedHashMap lang = new LinkedHashMap<>();
+ lang.put("", getString(R.string.settingsLanguageSystem));
+ for (String langCode : getResources().getStringArray(R.array.languages)) {
+ lang.put(langCode, getLanguageDisplayName(langCode));
+ }
+
ImageView closeActivity = activitySettingsAppearanceBinding.close;
LinearLayout customFontFrame = activitySettingsAppearanceBinding.customFontFrame;
@@ -196,6 +205,48 @@ public class SettingsAppearanceActivity extends BaseActivity {
materialAlertDialogBuilder.create().show();
});
+
+ // language selector dialog
+ LinearLayout langFrame = activitySettingsAppearanceBinding.langFrame;
+
+ activitySettingsAppearanceBinding.helpTranslate.setOnClickListener(
+ v12 -> {
+ AppUtil.openUrlInBrowser(this, getResources().getString(R.string.crowdInLink));
+ });
+
+ langSelectedChoice = tinyDB.getInt("langId");
+ activitySettingsAppearanceBinding.tvLanguageSelected.setText(
+ lang.get(lang.keySet().toArray(new String[0])[langSelectedChoice]));
+
+ // language dialog
+ langFrame.setOnClickListener(
+ view -> {
+ MaterialAlertDialogBuilder materialAlertDialogBuilder =
+ new MaterialAlertDialogBuilder(ctx)
+ .setTitle(R.string.settingsLanguageSelectorDialogTitle)
+ .setCancelable(langSelectedChoice != -1)
+ .setNeutralButton(getString(R.string.cancelButton), null)
+ .setSingleChoiceItems(
+ lang.values().toArray(new String[0]),
+ langSelectedChoice,
+ (dialogInterface, i) -> {
+ String selectedLanguage =
+ lang.keySet().toArray(new String[0])[i];
+ tinyDB.putInt("langId", i);
+ tinyDB.putString("locale", selectedLanguage);
+
+ SettingsFragment.refreshParent = true;
+ this.overridePendingTransition(0, 0);
+ dialogInterface.dismiss();
+ Toasty.success(
+ appCtx,
+ getResources()
+ .getString(R.string.settingsSave));
+ this.recreate();
+ });
+
+ materialAlertDialogBuilder.create().show();
+ });
}
private void initCloseListener() {
@@ -255,4 +306,12 @@ public class SettingsAppearanceActivity extends BaseActivity {
requireActivity().recreate();
}
}
+
+ private static String getLanguageDisplayName(String langCode) {
+ Locale english = new Locale("en");
+ Locale translated = new Locale(langCode);
+ return String.format(
+ "%s (%s)",
+ translated.getDisplayName(translated), translated.getDisplayName(english));
+ }
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsTranslationActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsTranslationActivity.java
deleted file mode 100644
index 3b7d2d5c..00000000
--- a/app/src/main/java/org/mian/gitnex/activities/SettingsTranslationActivity.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.mian.gitnex.activities;
-
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import java.util.LinkedHashMap;
-import java.util.Locale;
-import org.mian.gitnex.R;
-import org.mian.gitnex.databinding.ActivitySettingsTranslationBinding;
-import org.mian.gitnex.fragments.SettingsFragment;
-import org.mian.gitnex.helpers.AppUtil;
-import org.mian.gitnex.helpers.Toasty;
-
-/**
- * @author M M Arif
- */
-public class SettingsTranslationActivity extends BaseActivity {
-
- private static int langSelectedChoice = 0;
- private View.OnClickListener onClickListener;
-
- private static String getLanguageDisplayName(String langCode) {
- Locale english = new Locale("en");
- Locale translated = new Locale(langCode);
- return String.format(
- "%s (%s)",
- translated.getDisplayName(translated), translated.getDisplayName(english));
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
-
- LinkedHashMap langs = new LinkedHashMap<>();
- langs.put("", getString(R.string.settingsLanguageSystem));
- for (String langCode : getResources().getStringArray(R.array.languages)) {
- langs.put(langCode, getLanguageDisplayName(langCode));
- }
-
- ActivitySettingsTranslationBinding activitySettingsTranslationBinding =
- ActivitySettingsTranslationBinding.inflate(getLayoutInflater());
- setContentView(activitySettingsTranslationBinding.getRoot());
-
- ImageView closeActivity = activitySettingsTranslationBinding.close;
-
- initCloseListener();
- closeActivity.setOnClickListener(onClickListener);
-
- final TextView tvLanguageSelected =
- activitySettingsTranslationBinding.tvLanguageSelected; // setter for en, fr
- TextView helpTranslate = activitySettingsTranslationBinding.helpTranslate;
-
- LinearLayout langFrame = activitySettingsTranslationBinding.langFrame;
-
- helpTranslate.setOnClickListener(
- v12 -> {
- AppUtil.openUrlInBrowser(this, getResources().getString(R.string.crowdInLink));
- });
-
- langSelectedChoice = tinyDB.getInt("langId");
- tvLanguageSelected.setText(
- langs.get(langs.keySet().toArray(new String[0])[langSelectedChoice]));
-
- // language dialog
- langFrame.setOnClickListener(
- view -> {
- MaterialAlertDialogBuilder materialAlertDialogBuilder =
- new MaterialAlertDialogBuilder(ctx)
- .setTitle(R.string.settingsLanguageSelectorDialogTitle)
- .setCancelable(langSelectedChoice != -1)
- .setNeutralButton(getString(R.string.cancelButton), null)
- .setSingleChoiceItems(
- langs.values().toArray(new String[0]),
- langSelectedChoice,
- (dialogInterface, i) -> {
- String selectedLanguage =
- langs.keySet().toArray(new String[0])[i];
- tinyDB.putInt("langId", i);
- tinyDB.putString("locale", selectedLanguage);
-
- SettingsFragment.refreshParent = true;
- this.overridePendingTransition(0, 0);
- dialogInterface.dismiss();
- Toasty.success(
- appCtx,
- getResources()
- .getString(R.string.settingsSave));
- this.recreate();
- });
-
- materialAlertDialogBuilder.create().show();
- });
- }
-
- private void initCloseListener() {
-
- onClickListener = view -> finish();
- }
-}
diff --git a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
index 55ab91c5..da78f3c1 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
@@ -19,7 +19,6 @@ import org.mian.gitnex.activities.SettingsAppearanceActivity;
import org.mian.gitnex.activities.SettingsGeneralActivity;
import org.mian.gitnex.activities.SettingsNotificationsActivity;
import org.mian.gitnex.activities.SettingsSecurityActivity;
-import org.mian.gitnex.activities.SettingsTranslationActivity;
import org.mian.gitnex.databinding.CustomAboutDialogBinding;
import org.mian.gitnex.databinding.FragmentSettingsBinding;
import org.mian.gitnex.helpers.AppUtil;
@@ -70,9 +69,6 @@ public class SettingsFragment extends Fragment {
fragmentSettingsBinding.notificationsFrame.setOnClickListener(
v1 -> startActivity(new Intent(ctx, SettingsNotificationsActivity.class)));
- fragmentSettingsBinding.languagesFrame.setOnClickListener(
- v1 -> startActivity(new Intent(ctx, SettingsTranslationActivity.class)));
-
fragmentSettingsBinding.rateAppFrame.setOnClickListener(rateApp -> rateThisApp());
fragmentSettingsBinding.aboutAppFrame.setOnClickListener(aboutApp -> showAboutAppDialog());
diff --git a/app/src/main/res/layout/activity_settings_appearance.xml b/app/src/main/res/layout/activity_settings_appearance.xml
index 5c2562e1..0d65497c 100644
--- a/app/src/main/res/layout/activity_settings_appearance.xml
+++ b/app/src/main/res/layout/activity_settings_appearance.xml
@@ -216,7 +216,7 @@
android:id="@+id/labelsInListFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="@dimen/dimen60dp"
+ android:layout_marginBottom="@dimen/dimen6dp"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/dimen16dp">
@@ -268,4 +268,51 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_settings_translation.xml b/app/src/main/res/layout/activity_settings_translation.xml
deleted file mode 100644
index 4cc01514..00000000
--- a/app/src/main/res/layout/activity_settings_translation.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index da137662..80dcf5fe 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -293,61 +293,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Do you want to reset counter for repository %s?
This will reset all the counters for this account repositories.
- Themes, fonts, badges
+ Themes, fonts, badges, translation
Biometric authentication, SSL certificates, cache
Languages
Crash reports