Deepl integration + set API KEY
This commit is contained in:
parent
406b9ad5d7
commit
2bd65baab6
|
@ -65,7 +65,7 @@ dependencies {
|
||||||
implementation "com.gongwen:swipeback:$swipebackLibraryVersion"
|
implementation "com.gongwen:swipeback:$swipebackLibraryVersion"
|
||||||
|
|
||||||
implementation 'com.github.stom79:country-picker-android:1.2.0'
|
implementation 'com.github.stom79:country-picker-android:1.2.0'
|
||||||
implementation 'com.github.stom79:mytransl:1.4'
|
implementation 'com.github.stom79:mytransl:1.5'
|
||||||
|
|
||||||
|
|
||||||
playstoreImplementation "io.github.kobakei:ratethisapp:$ratethisappLibraryVersion"
|
playstoreImplementation "io.github.kobakei:ratethisapp:$ratethisappLibraryVersion"
|
||||||
|
|
|
@ -571,7 +571,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
||||||
holder.yandex_translate.setVisibility(View.VISIBLE);
|
holder.yandex_translate.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
holder.yandex_translate.setVisibility(View.VISIBLE);
|
holder.yandex_translate.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Manages theme for icon colors
|
//Manages theme for icon colors
|
||||||
|
@ -1988,9 +1988,29 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
||||||
|
|
||||||
private void translateToot(Status status){
|
private void translateToot(Status status){
|
||||||
//Manages translations
|
//Manages translations
|
||||||
final MyTransL myTransL = MyTransL.getInstance(MyTransL.translatorEngine.YANDEX);
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
int trans = sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
|
||||||
|
MyTransL.translatorEngine et = MyTransL.translatorEngine.YANDEX;
|
||||||
|
String api_key = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if( trans == Helper.TRANS_YANDEX) {
|
||||||
|
et = MyTransL.translatorEngine.YANDEX;
|
||||||
|
}else if( trans == Helper.TRANS_DEEPL) {
|
||||||
|
et = MyTransL.translatorEngine.DEEPL;
|
||||||
|
}
|
||||||
|
final MyTransL myTransL = MyTransL.getInstance(et);
|
||||||
myTransL.setObfuscation(true);
|
myTransL.setObfuscation(true);
|
||||||
myTransL.setYandexAPIKey(Helper.YANDEX_KEY);
|
if( trans == Helper.TRANS_YANDEX) {
|
||||||
|
api_key = sharedpreferences.getString(Helper.SET_YANDEX_API_KEY, Helper.YANDEX_KEY);
|
||||||
|
myTransL.setYandexAPIKey(api_key);
|
||||||
|
}else if( trans == Helper.TRANS_DEEPL) {
|
||||||
|
api_key = sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, "");
|
||||||
|
myTransL.setDeeplAPIKey(api_key);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if( !status.isTranslated() ){
|
if( !status.isTranslated() ){
|
||||||
String statusToTranslate;
|
String statusToTranslate;
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||||
|
@ -2015,6 +2035,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFail(HttpsConnectionException e) {
|
public void onFail(HttpsConnectionException e) {
|
||||||
|
e.printStackTrace();
|
||||||
Toast.makeText(context, R.string.toast_error_translate, Toast.LENGTH_LONG).show();
|
Toast.makeText(context, R.string.toast_error_translate, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -33,6 +33,8 @@ import android.provider.DocumentsContract;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v7.widget.SwitchCompat;
|
import android.support.v7.widget.SwitchCompat;
|
||||||
|
import android.text.Editable;
|
||||||
|
import android.text.TextWatcher;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -40,6 +42,7 @@ import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.CompoundButton;
|
import android.widget.CompoundButton;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
|
@ -57,6 +60,7 @@ import fr.gouv.etalab.mastodon.R;
|
||||||
import static android.app.Activity.RESULT_OK;
|
import static android.app.Activity.RESULT_OK;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.CHANGE_THEME_INTENT;
|
import static fr.gouv.etalab.mastodon.helper.Helper.CHANGE_THEME_INTENT;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
|
import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
|
||||||
|
import static fr.gouv.etalab.mastodon.helper.Helper.SET_YANDEX_API_KEY;
|
||||||
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
|
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +75,8 @@ public class SettingsFragment extends Fragment {
|
||||||
private static final int ACTIVITY_CHOOSE_FILE = 411;
|
private static final int ACTIVITY_CHOOSE_FILE = 411;
|
||||||
private TextView set_folder;
|
private TextView set_folder;
|
||||||
int count1, count2, count3 = 0;
|
int count1, count2, count3 = 0;
|
||||||
|
private EditText your_api_key;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
@ -170,6 +176,36 @@ public class SettingsFragment extends Fragment {
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
your_api_key = rootView.findViewById(R.id.translation_key);
|
||||||
|
|
||||||
|
your_api_key.addTextChangedListener(new TextWatcher() {
|
||||||
|
@Override
|
||||||
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterTextChanged(Editable s) {
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
int translatore = sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
|
||||||
|
String store = null;
|
||||||
|
if( translatore == Helper.TRANS_YANDEX)
|
||||||
|
store = Helper.SET_YANDEX_API_KEY;
|
||||||
|
else if( translatore == Helper.TRANS_DEEPL)
|
||||||
|
store = Helper.SET_DEEPL_API_KEY;
|
||||||
|
if( store != null)
|
||||||
|
if( s != null && s.length() > 0)
|
||||||
|
editor.putString(store, s.toString().trim());
|
||||||
|
else
|
||||||
|
editor.putString(store, null);
|
||||||
|
editor.apply();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
boolean notif_validation_fav = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION_FAV, false);
|
boolean notif_validation_fav = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION_FAV, false);
|
||||||
final CheckBox set_share_validation_fav = rootView.findViewById(R.id.set_share_validation_fav);
|
final CheckBox set_share_validation_fav = rootView.findViewById(R.id.set_share_validation_fav);
|
||||||
|
@ -645,11 +681,20 @@ public class SettingsFragment extends Fragment {
|
||||||
switch (sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX)){
|
switch (sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX)){
|
||||||
case Helper.TRANS_YANDEX:
|
case Helper.TRANS_YANDEX:
|
||||||
positionSpinnerTrans = 0;
|
positionSpinnerTrans = 0;
|
||||||
|
your_api_key.setVisibility(View.VISIBLE);
|
||||||
|
your_api_key.setText(sharedpreferences.getString(Helper.SET_YANDEX_API_KEY, ""));
|
||||||
|
break;
|
||||||
|
case Helper.TRANS_DEEPL:
|
||||||
|
positionSpinnerTrans = 1;
|
||||||
|
your_api_key.setVisibility(View.VISIBLE);
|
||||||
|
your_api_key.setText(sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, ""));
|
||||||
break;
|
break;
|
||||||
case Helper.TRANS_NONE:
|
case Helper.TRANS_NONE:
|
||||||
positionSpinnerTrans = 1;
|
positionSpinnerTrans = 2;
|
||||||
|
your_api_key.setVisibility(View.GONE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
your_api_key.setVisibility(View.VISIBLE);
|
||||||
positionSpinnerTrans = 0;
|
positionSpinnerTrans = 0;
|
||||||
}
|
}
|
||||||
translation_layout_spinner.setSelection(positionSpinnerTrans);
|
translation_layout_spinner.setSelection(positionSpinnerTrans);
|
||||||
|
@ -660,10 +705,21 @@ public class SettingsFragment extends Fragment {
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
switch (position){
|
switch (position){
|
||||||
case 0:
|
case 0:
|
||||||
|
your_api_key.setVisibility(View.VISIBLE);
|
||||||
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
|
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
|
if( sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, null) != null)
|
||||||
|
your_api_key.setText(sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, ""));
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
your_api_key.setVisibility(View.VISIBLE);
|
||||||
|
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_DEEPL);
|
||||||
|
editor.apply();
|
||||||
|
if( sharedpreferences.getString(SET_YANDEX_API_KEY, null) != null)
|
||||||
|
your_api_key.setText(sharedpreferences.getString(SET_YANDEX_API_KEY, null));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
your_api_key.setVisibility(View.GONE);
|
||||||
set_trans_forced.isChecked();
|
set_trans_forced.isChecked();
|
||||||
editor.putBoolean(Helper.SET_TRANS_FORCED, false);
|
editor.putBoolean(Helper.SET_TRANS_FORCED, false);
|
||||||
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_NONE);
|
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_NONE);
|
||||||
|
|
|
@ -262,6 +262,7 @@ public class Helper {
|
||||||
public static final int LED_COLOUR = 0;
|
public static final int LED_COLOUR = 0;
|
||||||
|
|
||||||
public static final int TRANS_YANDEX = 0;
|
public static final int TRANS_YANDEX = 0;
|
||||||
|
public static final int TRANS_DEEPL = 1;
|
||||||
public static final int TRANS_NONE = 2;
|
public static final int TRANS_NONE = 2;
|
||||||
|
|
||||||
public static final String SET_TRANS_FORCED = "set_trans_forced";
|
public static final String SET_TRANS_FORCED = "set_trans_forced";
|
||||||
|
@ -327,6 +328,8 @@ public class Helper {
|
||||||
//User agent
|
//User agent
|
||||||
public static final String USER_AGENT = "Mastalab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE;
|
public static final String USER_AGENT = "Mastalab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE;
|
||||||
|
|
||||||
|
public static final String SET_YANDEX_API_KEY = "set_yandex_api_key";
|
||||||
|
public static final String SET_DEEPL_API_KEY = "set_deepl_api_key";
|
||||||
|
|
||||||
private static boolean menuAccountsOpened = false;
|
private static boolean menuAccountsOpened = false;
|
||||||
|
|
||||||
|
|
|
@ -197,29 +197,39 @@
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- TABS Layout -->
|
<!-- Translation engine -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
android:id="@+id/translation_layout_container"
|
android:id="@+id/translation_layout_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="vertical">
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/about_yandex"/>
|
android:layout_gravity="center_vertical"
|
||||||
<Spinner
|
android:orientation="horizontal">
|
||||||
android:id="@+id/translation_layout_spinner"
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
<CheckBox
|
android:text="@string/about_yandex"/>
|
||||||
android:layout_marginLeft="10dp"
|
<Spinner
|
||||||
android:layout_marginStart="10dp"
|
android:id="@+id/translation_layout_spinner"
|
||||||
android:id="@+id/set_trans_forced"
|
android:layout_width="wrap_content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
|
<CheckBox
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:id="@+id/set_trans_forced"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
<EditText
|
||||||
|
android:hint="@string/your_api_key"
|
||||||
|
android:id="@+id/translation_key"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -202,21 +202,32 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="vertical">
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/about_yandex"/>
|
android:layout_gravity="center_vertical"
|
||||||
<Spinner
|
android:orientation="horizontal">
|
||||||
android:id="@+id/translation_layout_spinner"
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_width="wrap_content"
|
||||||
<CheckBox
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="10dp"
|
android:text="@string/about_yandex"/>
|
||||||
android:layout_marginStart="10dp"
|
<Spinner
|
||||||
android:id="@+id/set_trans_forced"
|
android:id="@+id/translation_layout_spinner"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
<CheckBox
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:id="@+id/set_trans_forced"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
<EditText
|
||||||
|
android:hint="@string/your_api_key"
|
||||||
|
android:id="@+id/translation_key"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -351,9 +351,12 @@
|
||||||
|
|
||||||
<string-array name="settings_translation">
|
<string-array name="settings_translation">
|
||||||
<item>Yandex</item>
|
<item>Yandex</item>
|
||||||
|
<item>DeepL</item>
|
||||||
<item>No</item>
|
<item>No</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string name="your_api_key">Your API key, you can leave blank for Yandex</string>
|
||||||
|
|
||||||
<string-array name="settings_theme">
|
<string-array name="settings_theme">
|
||||||
<item>Dark</item>
|
<item>Dark</item>
|
||||||
<item>Light</item>
|
<item>Light</item>
|
||||||
|
|
Loading…
Reference in New Issue