diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a2bfb6c..2130ac4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -68,7 +68,7 @@ assembleDebug:
cache:
key: "${CI_COMMIT_TAG}"
paths:
- - app/build/outputs/apk/fdroid_peertube_apps_educ/debug/app-fdroid_peertube_apps_educ-debug.apk
+ - app/build/outputs/apk/fdroid_acad/debug/app-fdroid_acad-debug.apk
- app/build/outputs/apk/fdroid_full/debug/app-fdroid_full-debug.apk
policy: push
script:
@@ -76,11 +76,11 @@ assembleDebug:
# Basic android and gradle stuff
# Check linting
-lintfdroid_peertube_apps_educDebug:
+lintfdroid_acadDebug:
interruptible: true
stage: build
script:
- - ./gradlew -Pci --console=plain :app:lintfdroid_peertube_apps_educDebug -PbuildDir=lint
+ - ./gradlew -Pci --console=plain :app:lintfdroid_acadDebug -PbuildDir=lint
except:
- tags
@@ -110,7 +110,7 @@ putApkOnTags:
cache:
key: "${CI_COMMIT_TAG}"
paths:
- - app/build/outputs/apk/fdroid_peertube_apps_educ/debug/app-fdroid_peertube_apps_educ-debug.apk
+ - app/build/outputs/apk/fdroid_acad/debug/app-fdroid_acad-debug.apk
- app/build/outputs/apk/fdroid_full/debug/app-fdroid_full-debug.apk
policy: pull
script:
@@ -120,11 +120,11 @@ putApkOnTags:
- export NC_UPLOAD_URL="${NC_REMOTE_DIR}/${CI_COMMIT_TAG}"
- export NC_DOWNLOAD_URL="${NC_SHARE_URL}/download?path=%2F${CI_COMMIT_TAG}%2F&files="
- 'export HEADER="Private-Token: ${GITLAB_API_TOKEN}"'
- - export acadUrl="${NC_DOWNLOAD_URL}app-fdroid_peertube_apps_educ-debug.apk"
+ - export acadUrl="${NC_DOWNLOAD_URL}app-fdroid_acad-debug.apk"
- export fullUrl="${NC_DOWNLOAD_URL}app-fdroid_full-debug.apk"
- 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -X MKCOL "${NC_UPLOAD_URL}"'
- 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -T app/build/outputs/apk/fdroid_full/debug/app-fdroid_full-debug.apk "${NC_UPLOAD_URL}/app-fdroid_full-debug.apk"'
- - 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -T app/build/outputs/apk/fdroid_peertube_apps_educ/debug/app-fdroid_peertube_apps_educ-debug.apk "${NC_UPLOAD_URL}/app-fdroid_peertube_apps_educ-debug.apk"'
+ - 'curl -s -u "${NC_USER}:${NC_PASSWORD}" -T app/build/outputs/apk/fdroid_acad/debug/app-fdroid_acad-debug.apk "${NC_UPLOAD_URL}/app-fdroid_acad-debug.apk"'
- export description=$(curl -s --header "${HEADER}" "${DESCRIPTION_URL}" | jq .release.description | sed -e 's@"@@g')
- if [[ $description == 'null' ]]; then export METHOD="POST"; echo -e "[Get the acad version](${acadUrl})\n\n[Get the full version](${fullUrl})" > /tmp/text; fi
- if [[ $description != 'null' ]]; then export METHOD="PUT"; echo -e "${description}\n\n[Get the acad version](${acadUrl})\n\n[Get the full version](${fullUrl})" > /tmp/text; fi
diff --git a/app/build.gradle b/app/build.gradle
index 827397c..e8cd9b0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -42,7 +42,7 @@ android {
}
//boolean full_instances if set to false means TubeAcad
productFlavors {
- fdroid_peertube_apps_educ {
+ fdroid_acad {
applicationId "app.fedilab.fedilabtube"
resValue "string", "app_name", "TubeAcad"
resValue "string", "app_id", "app.fedilab.fedilabtube"
@@ -57,7 +57,7 @@ android {
buildConfigField "int", "cast_enabled", "0"
buildConfigField "int", "default_theme", "2"
}
- google_peertube_apps_educ {
+ google_acad {
applicationId "app.fedilab.fedilabtube"
resValue "string", "app_name", "TubeAcad"
resValue "string", "app_id", "app.fedilab.fedilabtube"
@@ -68,8 +68,8 @@ android {
buildConfigField "boolean", "sepia_search", "false"
buildConfigField "boolean", "instance_switcher", "true"
buildConfigField "boolean", "allow_remote_connections", "false"
- buildConfigField "boolean", "google_cast_lib", "false"
- buildConfigField "int", "cast_enabled", "0"
+ buildConfigField "boolean", "google_cast_lib", "true"
+ buildConfigField "int", "cast_enabled", "1"
buildConfigField "int", "default_theme", "2"
}
fdroid_full {
@@ -135,13 +135,14 @@ android {
}
sourceSets {
- fdroid_peertube_apps_educ {
+
+ fdroid_acad {
res.srcDirs = ['src/main/res', 'src/acad/res', 'src/no_google_cast_lib/res']
java.srcDirs = ['src/main/java', 'src/acad/java', 'src/no_google_donation/java', 'src/no_google_cast_lib/java']
}
- google_peertube_apps_educ {
+ google_acad {
res.srcDirs = ['src/main/res', 'src/acad/res', 'src/no_google_cast_lib/res']
- java.srcDirs = ['src/main/java', 'src/acad/java', 'src/no_google_donation/java', 'src/no_google_cast_lib/java']
+ java.srcDirs = ['src/main/java', 'src/acad/java', 'src/no_google_donation/java', 'src/google_cast_lib/java']
}
fdroid_full {
res.srcDirs = ['src/main/res', 'src/full/res', 'src/no_google_cast_lib/res']
@@ -221,23 +222,23 @@ dependencies {
//************ MATOMO --> acad instances only **************//
- fdroid_peertube_apps_educImplementation 'org.matomo.sdk:tracker:4.1.2'
- google_peertube_apps_educImplementation 'org.matomo.sdk:tracker:4.1.2'
+ fdroid_acadImplementation 'org.matomo.sdk:tracker:4.1.2'
+ google_acadImplementation 'org.matomo.sdk:tracker:4.1.2'
//************ CAST **************///
//---> Google libs (google_full + bittube)
+ google_acadImplementation "androidx.mediarouter:mediarouter:1.2.1"
+ google_acadImplementation 'com.google.android.gms:play-services-cast-framework:19.0.0'
google_fullImplementation "androidx.mediarouter:mediarouter:1.2.1"
google_fullImplementation 'com.google.android.gms:play-services-cast-framework:19.0.0'
bittubeImplementation "androidx.mediarouter:mediarouter:1.2.1"
bittubeImplementation 'com.google.android.gms:play-services-cast-framework:19.0.0'
+
//----> Other flavors
- fdroid_peertube_apps_educImplementation 'su.litvak.chromecast:api-v2:0.11.3'
- fdroid_peertube_apps_educImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0'
- fdroid_peertube_apps_educImplementation 'org.slf4j:slf4j-simple:1.7.30'
- google_peertube_apps_educImplementation 'su.litvak.chromecast:api-v2:0.11.3'
- google_peertube_apps_educImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0'
- google_peertube_apps_educImplementation 'org.slf4j:slf4j-simple:1.7.30'
+ fdroid_acadImplementation 'su.litvak.chromecast:api-v2:0.11.3'
+ fdroid_acadImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0'
+ fdroid_acadImplementation 'org.slf4j:slf4j-simple:1.7.30'
fdroid_fullImplementation 'su.litvak.chromecast:api-v2:0.11.3'
fdroid_fullImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0'
fdroid_fullImplementation 'org.slf4j:slf4j-simple:1.7.30'
diff --git a/app/src/bittube/AndroidManifest.xml b/app/src/bittube/AndroidManifest.xml
index 9922488..d0b65c3 100644
--- a/app/src/bittube/AndroidManifest.xml
+++ b/app/src/bittube/AndroidManifest.xml
@@ -27,16 +27,15 @@
android:host="*"
android:pathPrefix="/videos/watch/"
android:scheme="https" />
-
+
{
- if (!hasFocus) {
- if (binding.loginUid.getText() != null && android.util.Patterns.EMAIL_ADDRESS.matcher(binding.loginUid.getText().toString().trim()).matches()) {
- String[] emailArray = binding.loginUid.getText().toString().split("@");
- if (emailArray.length > 1) {
- binding.loginButton.callOnClick();
- }
- }
- }
- });
+
binding.loginUidContainer.setVisibility(View.GONE);
binding.loginPasswdContainer.setVisibility(View.GONE);
binding.loginInstanceContainer.setVisibility(View.GONE);
@@ -137,24 +128,24 @@ public class LoginActivity extends AppCompatActivity {
binding.instancePickerTitle.setVisibility(View.VISIBLE);
binding.instancePicker.setVisibility(View.VISIBLE);
- HashMap instancesMap = new HashMap<>(HelperAcadInstance.instances_themes);
- Iterator> it = instancesMap.entrySet().iterator();
- String[] academiesKey = new String[HelperAcadInstance.instances_themes.size()];
- String[] academiesValue = new String[HelperAcadInstance.instances_themes.size()];
+
+ List acadInstances = AcadInstances.getInstances();
+ String[] academiesKey = new String[acadInstances.size()];
+ String[] academiesValue = new String[acadInstances.size()];
String acad = HelperInstance.getLiveInstance(LoginActivity.this);
int position = 0;
int i = 0;
- while (it.hasNext()) {
- Map.Entry pair = it.next();
- academiesKey[i] = pair.getKey();
- academiesValue[i] = pair.getValue();
- if (pair.getValue().compareTo(acad) == 0) {
+ for (AcadInstances ac : acadInstances) {
+ academiesKey[i] = ac.getName();
+ academiesValue[i] = ac.getUrl();
+ Log.v(Helper.TAG, "url 1: " + ac.getUrl());
+ Log.v(Helper.TAG, "url 2: " + acad);
+ if (ac.getUrl().compareTo(acad) == 0) {
position = i;
+ Log.v(Helper.TAG, "ok: " + position);
}
- it.remove();
i++;
}
- binding.instancePicker.setSelection(position, true);
ArrayAdapter adapterChannel = new ArrayAdapter<>(LoginActivity.this,
android.R.layout.simple_spinner_dropdown_item, academiesKey);
binding.instancePicker.setAdapter(adapterChannel);
@@ -162,6 +153,17 @@ public class LoginActivity extends AppCompatActivity {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
acadInstance = academiesValue[position];
+ if (acadInstances.get(position).isOpenId()) {
+ binding.loginUidContainer.setVisibility(View.GONE);
+ binding.loginPasswdContainer.setVisibility(View.GONE);
+ binding.loginInstanceContainer.setVisibility(View.GONE);
+ binding.createAnAccountPeertube.setVisibility(View.GONE);
+ } else {
+ binding.loginUidContainer.setVisibility(View.VISIBLE);
+ binding.loginPasswdContainer.setVisibility(View.VISIBLE);
+ binding.loginInstanceContainer.setVisibility(View.GONE);
+ binding.createAnAccountPeertube.setVisibility(View.VISIBLE);
+ }
}
@Override
@@ -169,6 +171,7 @@ public class LoginActivity extends AppCompatActivity {
}
});
+ binding.instancePicker.setSelection(position, true);
}
if (BuildConfig.allow_remote_connections) {
binding.loginInstance.setOnFocusChangeListener((v, hasFocus) -> {
@@ -196,7 +199,7 @@ public class LoginActivity extends AppCompatActivity {
}
binding.loginButton.setOnClickListener(v -> {
- if (!BuildConfig.full_instances) {
+ if (!BuildConfig.full_instances && AcadInstances.isOpenId(acadInstance)) {
new Thread(() -> {
try {
Oauth oauth = new RetrofitPeertubeAPI(LoginActivity.this, acadInstance, null).oauthClient(null, null, null, null);
@@ -275,15 +278,13 @@ public class LoginActivity extends AppCompatActivity {
return;
}
String finalInstance = instance;
- if (BuildConfig.full_instances) {
- new Thread(() -> {
- WellKnownNodeinfo.NodeInfo instanceNodeInfo = null;
- if (BuildConfig.allow_remote_connections) {
- instanceNodeInfo = new RetrofitPeertubeAPI(LoginActivity.this, finalInstance, null).getNodeInfo();
- }
- connectToFediverse(finalInstance, instanceNodeInfo);
- }).start();
- }
+ new Thread(() -> {
+ WellKnownNodeinfo.NodeInfo instanceNodeInfo = null;
+ if (BuildConfig.allow_remote_connections) {
+ instanceNodeInfo = new RetrofitPeertubeAPI(LoginActivity.this, finalInstance, null).getNodeInfo();
+ }
+ connectToFediverse(finalInstance, instanceNodeInfo);
+ }).start();
}
});
}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
index 8f122a1..72dcf95 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java
@@ -49,11 +49,8 @@ import com.kobakei.ratethisapp.RateThisApp;
import org.jetbrains.annotations.NotNull;
import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Matcher;
@@ -62,6 +59,7 @@ import java.util.regex.Pattern;
import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
import app.fedilab.fedilabtube.client.data.AccountData.Account;
import app.fedilab.fedilabtube.client.data.InstanceData;
+import app.fedilab.fedilabtube.client.entities.AcadInstances;
import app.fedilab.fedilabtube.client.entities.Error;
import app.fedilab.fedilabtube.client.entities.OauthParams;
import app.fedilab.fedilabtube.client.entities.PeertubeInformation;
@@ -496,9 +494,9 @@ public class MainActivity extends BaseMainActivity {
MenuItem settingsItem = menu.findItem(R.id.action_settings);
MenuItem sepiaSearchItem = menu.findItem(R.id.action_sepia_search);
MenuItem incognitoItem = menu.findItem(R.id.action_incognito);
- MenuItem instanceItem = menu.findItem(R.id.action_change_instance);
MenuItem accountItem = menu.findItem(R.id.action_account);
MenuItem donateItem = menu.findItem(R.id.action_donate);
+ MenuItem changeInstanceItem = menu.findItem(R.id.action_change_instance);
FrameLayout rootView = (FrameLayout) accountItem.getActionView();
@@ -512,24 +510,15 @@ public class MainActivity extends BaseMainActivity {
redCircle.setVisibility(View.GONE);
}
TooltipCompat.setTooltipText(accountItem.getActionView(), getText(R.string.account));
- if (BuildConfig.full_instances && BuildConfig.google_restriction) {
+ if (BuildConfig.FLAVOR.compareTo("google_full") == 0) {
donateItem.setVisible(true);
}
- if (BuildConfig.surfing_mode && ((Helper.isLoggedIn(MainActivity.this) && typeOfConnection == NORMAL) || typeOfConnection == SURFING)) {
- binding.instances.setVisibility(View.VISIBLE);
- binding.instances.setOnClickListener(null);
- binding.instances.setOnClickListener(v -> {
- Intent intent = new Intent(MainActivity.this, ManageInstancesActivity.class);
- startActivity(intent);
- overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
- });
- } else {
- binding.instances.setVisibility(View.GONE);
+ if (!BuildConfig.instance_switcher) {
+ changeInstanceItem.setVisible(false);
}
switch (typeOfConnection) {
case UNKNOWN:
- instanceItem.setVisible(false);
accountItem.setVisible(false);
uploadItem.setVisible(false);
myVideosItem.setVisible(false);
@@ -543,7 +532,9 @@ public class MainActivity extends BaseMainActivity {
case NORMAL:
accountItem.setVisible(true);
if (Helper.isLoggedIn(MainActivity.this)) {
- instanceItem.setVisible(false);
+ if (!BuildConfig.full_instances) {
+ changeInstanceItem.setVisible(false);
+ }
uploadItem.setVisible(true);
myVideosItem.setVisible(true);
playslistItem.setVisible(true);
@@ -555,7 +546,6 @@ public class MainActivity extends BaseMainActivity {
boolean checked = sharedpreferences.getBoolean(getString(R.string.set_store_in_history), true);
incognitoItem.setChecked(checked);
} else {
- instanceItem.setVisible(true);
uploadItem.setVisible(false);
myVideosItem.setVisible(false);
playslistItem.setVisible(!BuildConfig.full_instances);
@@ -566,7 +556,6 @@ public class MainActivity extends BaseMainActivity {
}
break;
case SURFING:
- instanceItem.setVisible(false);
accountItem.setVisible(true);
uploadItem.setVisible(false);
myVideosItem.setVisible(false);
@@ -578,9 +567,6 @@ public class MainActivity extends BaseMainActivity {
break;
}
- if (!BuildConfig.instance_switcher) {
- instanceItem.setVisible(false);
- }
if (!BuildConfig.sepia_search) {
sepiaSearchItem.setVisible(false);
@@ -624,7 +610,9 @@ public class MainActivity extends BaseMainActivity {
String action = "TIMELINE";
if (item.getItemId() == R.id.action_change_instance) {
if (BuildConfig.full_instances) {
- showRadioButtonDialogFullInstances(MainActivity.this, false);
+ Intent intent = new Intent(MainActivity.this, ManageInstancesActivity.class);
+ startActivity(intent);
+ overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
} else {
showRadioButtonDialog();
}
@@ -738,21 +726,19 @@ public class MainActivity extends BaseMainActivity {
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
String acad = HelperInstance.getLiveInstance(MainActivity.this);
int i = 0;
- HashMap instancesMap = new HashMap<>(HelperAcadInstance.instances_themes);
- Iterator> it = instancesMap.entrySet().iterator();
- String[] academiesKey = new String[HelperAcadInstance.instances_themes.size()];
- String[] academiesValue = new String[HelperAcadInstance.instances_themes.size()];
+ List acadInstances = AcadInstances.getInstances();
+ String[] academiesKey = new String[acadInstances.size()];
+ String[] academiesValue = new String[acadInstances.size()];
int position = 0;
- while (it.hasNext()) {
- Map.Entry pair = it.next();
- academiesKey[i] = pair.getKey();
- academiesValue[i] = pair.getValue();
- if (pair.getValue().compareTo(acad) == 0) {
+ for (AcadInstances ac : acadInstances) {
+ academiesKey[i] = ac.getName();
+ academiesValue[i] = ac.getUrl();
+ if (ac.getUrl().compareTo(acad) == 0) {
position = i;
}
- it.remove();
i++;
}
+
alt_bld.setSingleChoiceItems(academiesKey, position, (dialog, item) -> {
String newInstance = academiesValue[item];
SharedPreferences.Editor editor = sharedpreferences.edit();
diff --git a/app/src/main/java/app/fedilab/fedilabtube/client/entities/AcadInstances.java b/app/src/main/java/app/fedilab/fedilabtube/client/entities/AcadInstances.java
new file mode 100644
index 0000000..d28f3e6
--- /dev/null
+++ b/app/src/main/java/app/fedilab/fedilabtube/client/entities/AcadInstances.java
@@ -0,0 +1,109 @@
+package app.fedilab.fedilabtube.client.entities;
+/* Copyright 2021 Thomas Schneider
+ *
+ * This file is a part of TubeLab
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with TubeLab; if not,
+ * see . */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import app.fedilab.fedilabtube.helper.HelperAcadInstance;
+
+public class AcadInstances {
+
+ private String name;
+ private String url;
+ private boolean openId;
+
+ public static boolean isOpenId(String domain) {
+ List instances = getInstances();
+ for (AcadInstances acadInstance : instances) {
+ if (acadInstance.getUrl().compareTo(domain) == 0) {
+ return acadInstance.isOpenId();
+ }
+ }
+ return false;
+ }
+
+ public static List getInstances() {
+ List acadInstances = new ArrayList<>();
+
+ for (String academie : HelperAcadInstance.academies) {
+ AcadInstances acadInstance = new AcadInstances();
+ acadInstance.name = academie;
+ acadInstance.openId = !Arrays.asList(HelperAcadInstance.notOpenId).contains(academie);
+ acadInstance.url = getPeertubeUrl(academie);
+ acadInstances.add(acadInstance);
+ }
+ HashMap instancesMap = new HashMap<>(HelperAcadInstance.instances_themes);
+ Iterator> it = instancesMap.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry pair = it.next();
+ AcadInstances acadInstance = new AcadInstances();
+ acadInstance.name = pair.getKey();
+ acadInstance.openId = true;
+ acadInstance.url = pair.getValue();
+ acadInstances.add(acadInstance);
+ it.remove();
+ }
+ return acadInstances;
+ }
+
+ /**
+ * Returns the peertube URL depending of the academic domain name
+ *
+ * @param acad String academic domain name
+ * @return String the peertube URL
+ */
+ private static String getPeertubeUrl(String acad) {
+
+ if (acad.compareTo("education.gouv.fr") == 0 || acad.compareTo("igesr.gouv.fr") == 0) {
+ acad = "education.fr";
+ } else if (acad.compareTo("ac-nancy-metz.fr") == 0) {
+ acad = "ac-nancy.fr";
+ } else if (acad.compareTo("clermont.fr") == 0) {
+ acad = "clermont-ferrand.fr";
+ } else if (acad.compareTo("ac-wf.wf") == 0 || acad.compareTo("ac-mayotte.fr") == 0 || acad.compareTo("ac-noumea.nc") == 0
+ || acad.compareTo("ac-guadeloupe.fr") == 0 || acad.compareTo("monvr.pf") == 0 || acad.compareTo("ac-reunion.fr") == 0 ||
+ acad.compareTo("ac-martinique.fr") == 0 || acad.compareTo("ac-guyane.fr") == 0
+ ) {
+ acad = "outremer.fr";
+ }
+ if (!acad.contains("ac-lyon.fr")) {
+ //TODO: remove hack for test with openid
+ /*if( acad.contains("orleans-tours.fr")) {
+ return "tube-normandie.beta.education.fr";
+ }*/
+ return "tube-" + acad.replaceAll("ac-|\\.fr", "") + ".beta.education.fr";
+ } else {
+ return "tube.ac-lyon.fr";
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public boolean isOpenId() {
+ return openId;
+ }
+
+}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/helper/HelperAcadInstance.java b/app/src/main/java/app/fedilab/fedilabtube/helper/HelperAcadInstance.java
index 63f21bf..f7fa50b 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/helper/HelperAcadInstance.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/helper/HelperAcadInstance.java
@@ -32,6 +32,64 @@ public class HelperAcadInstance {
public static String SUBSCRIPTIONS = "ABONNEMENTS";
public static String MYVIDEOS = "VIDEOS";
+
+ public static String[] notOpenId = {
+ "ac-aix-marseille.fr",
+ "ac-amiens.fr",
+ "ac-besancon.fr",
+ "ac-bordeaux.fr",
+ "clermont-ferrand.fr",
+ "ac-corse.fr",
+ "ac-creteil.fr",
+ "ac-dijon.fr",
+ "ac-grenoble.fr",
+ "ac-lille.fr",
+ "ac-limoges.fr",
+ "ac-lyon.fr",
+ "ac-mayotte.fr",
+ "ac-montpellier.fr",
+ "ac-nancy.fr",
+ "ac-nantes.fr",
+ "ac-orleans-tours.fr",
+ "ac-paris.fr",
+ "ac-poitiers.fr",
+ "outremer.fr",
+ "ac-rennes.fr",
+ "ac-strasbourg.fr",
+ "ac-toulouse.fr",
+ "ac-versailles.fr"
+ };
+
+ public static String[] academies = {
+ "ac-aix-marseille.fr",
+ "ac-amiens.fr",
+ "ac-besancon.fr",
+ "ac-bordeaux.fr",
+ "clermont-ferrand.fr",
+ "ac-corse.fr",
+ "ac-creteil.fr",
+ "ac-dijon.fr",
+ "ac-grenoble.fr",
+ "education.fr",
+ "ac-lille.fr",
+ "ac-limoges.fr",
+ "ac-lyon.fr",
+ "ac-mayotte.fr",
+ "ac-montpellier.fr",
+ "ac-nancy.fr",
+ "ac-nantes.fr",
+ "ac-normandie.fr",
+ "ac-orleans-tours.fr",
+ "ac-paris.fr",
+ "ac-poitiers.fr",
+ "outremer.fr",
+ "ac-rennes.fr",
+ "ac-strasbourg.fr",
+ "ac-toulouse.fr",
+ "ac-versailles.fr"
+ };
+
+
//List of available emails
public static String[] valideEmails = {
"ac-aix-marseille.fr",
@@ -71,10 +129,11 @@ public class HelperAcadInstance {
"igesr.gouv.fr"
};
+
static {
Map is = new LinkedHashMap<>();
- is.put("Normandie", "tube-normandie.beta.education.fr");
- is.put("Enseignement professionnel", "tube-enseignement-professionnel.apps.education.fr");
+ //TODO: remove comments when instances will be available
+ /* is.put("Enseignement professionnel", "tube-enseignement-professionnel.apps.education.fr");
is.put("Action éducative", "tube-action-educative.apps.education.fr");
is.put("Numérique éducatif", "tube-numerique-educatif.apps.education.fr");
is.put("Institutionnel", "tube-institutionnelle.apps.education.fr");
@@ -83,7 +142,7 @@ public class HelperAcadInstance {
is.put("2d - arts, lettres et sciences humaines", "tube-2d-arts-lettres-sciences-humaines.apps.education.fr");
is.put("Maternelle", "tube-maternelle.apps.education.fr");
is.put("Cycle 2", "tube-cycle-2.apps.education.fr");
- is.put("Cycle 3", "tube-cycle-3.apps.education.fr");
+ is.put("Cycle 3", "tube-cycle-3.apps.education.fr");*/
instances_themes = Collections.unmodifiableMap(is);
}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/helper/HelperInstance.java b/app/src/main/java/app/fedilab/fedilabtube/helper/HelperInstance.java
index 19c69e4..c46c1f5 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/helper/HelperInstance.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/helper/HelperInstance.java
@@ -30,10 +30,8 @@ public class HelperInstance {
* @param context Context
* @return String domain instance
*/
- @SuppressWarnings("ConstantConditions")
public static String getLiveInstance(Context context) {
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
- String acad;
if (BuildConfig.FLAVOR.compareTo("fdroid_full") == 0 || BuildConfig.FLAVOR.compareTo("google_full") == 0) {
return sharedpreferences.getString(Helper.PREF_INSTANCE, getDefaultInstance());
} else if (BuildConfig.FLAVOR.compareTo("bittube") == 0) {
@@ -41,14 +39,16 @@ public class HelperInstance {
} else if (BuildConfig.FLAVOR.compareTo("queermotion") == 0) {
return sharedpreferences.getString(Helper.PREF_INSTANCE, "queermotion.org");
} else {
- acad = sharedpreferences.getString(Helper.PREF_INSTANCE, "tube-institutionnelle.apps.education.fr");
- if (acad == null) {
- acad = "tube-institutionnelle.apps.education.fr";
+ String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, "tube.ac-lyon.fr");
+ if (!instance.startsWith("tube")) {
+ return "tube.ac-lyon.fr";
+ } else {
+ return instance;
}
- return acad;
}
}
+
/**
* Get a default instance host name depending of the device locale
*
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 6edfca5..3533779 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -81,6 +81,34 @@
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/barrierTop">
-
-
-
-
+