2020-06-25 16:57:13 +02:00
|
|
|
package app.fedilab.fedilabtube;
|
|
|
|
|
2020-06-27 12:23:03 +02:00
|
|
|
import android.content.Context;
|
|
|
|
import android.content.SharedPreferences;
|
2020-06-27 11:21:25 +02:00
|
|
|
import android.os.AsyncTask;
|
2020-06-25 16:57:13 +02:00
|
|
|
import android.os.Bundle;
|
2020-06-27 12:23:03 +02:00
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.MenuItem;
|
2020-06-25 16:57:13 +02:00
|
|
|
|
2020-06-27 12:23:03 +02:00
|
|
|
import androidx.appcompat.app.AlertDialog;
|
2020-06-25 16:57:13 +02:00
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.navigation.NavController;
|
|
|
|
import androidx.navigation.Navigation;
|
|
|
|
import androidx.navigation.ui.AppBarConfiguration;
|
|
|
|
import androidx.navigation.ui.NavigationUI;
|
|
|
|
|
2020-06-27 11:21:25 +02:00
|
|
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
|
|
|
|
2020-06-27 12:23:03 +02:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
|
2020-06-27 11:21:25 +02:00
|
|
|
import app.fedilab.fedilabtube.asynctasks.RetrievePeertubeInformationAsyncTask;
|
2020-06-27 12:23:03 +02:00
|
|
|
import app.fedilab.fedilabtube.helper.Helper;
|
|
|
|
|
|
|
|
import static app.fedilab.fedilabtube.helper.Helper.academies;
|
2020-06-27 11:21:25 +02:00
|
|
|
|
2020-06-25 16:57:13 +02:00
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.activity_main);
|
|
|
|
BottomNavigationView navView = findViewById(R.id.nav_view);
|
2020-06-27 11:21:25 +02:00
|
|
|
|
|
|
|
try {
|
|
|
|
new RetrievePeertubeInformationAsyncTask(MainActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
|
|
} catch (Exception ignored) {
|
|
|
|
}
|
|
|
|
|
2020-06-25 16:57:13 +02:00
|
|
|
// Passing each menu ID as a set of Ids because each
|
|
|
|
// menu should be considered as top level destinations.
|
|
|
|
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
|
2020-06-27 11:21:25 +02:00
|
|
|
R.id.navigation_discover, R.id.navigation_trending, R.id.navigation_most_liked, R.id.navigation_recently_added, R.id.navigation_home)
|
2020-06-25 16:57:13 +02:00
|
|
|
.build();
|
|
|
|
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
|
|
|
|
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
|
|
|
NavigationUI.setupWithNavController(navView, navController);
|
|
|
|
}
|
|
|
|
|
2020-06-27 12:23:03 +02:00
|
|
|
@Override
|
|
|
|
public boolean onCreateOptionsMenu(@NotNull Menu menu) {
|
|
|
|
getMenuInflater().inflate(R.menu.main_menu, menu);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
if (item.getItemId() == R.id.action_change_instance) {
|
|
|
|
showRadioButtonDialog();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void showRadioButtonDialog() {
|
|
|
|
|
|
|
|
AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
|
|
|
|
alt_bld.setTitle(R.string.instance_choice);
|
|
|
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
|
|
String acad = sharedpreferences.getString(Helper.PREF_INSTANCE, "ac-lyon.fr");
|
|
|
|
int i = 0;
|
2020-06-27 19:08:52 +02:00
|
|
|
for (String item : academies) {
|
|
|
|
if (item.compareTo(acad) == 0) {
|
2020-06-27 12:23:03 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
alt_bld.setSingleChoiceItems(academies, i, (dialog, item) -> {
|
|
|
|
String newInstance = academies[item];
|
|
|
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
|
|
editor.putString(Helper.PREF_INSTANCE, newInstance);
|
|
|
|
editor.commit();
|
|
|
|
dialog.dismiss();
|
|
|
|
recreate();
|
|
|
|
|
|
|
|
});
|
|
|
|
AlertDialog alert = alt_bld.create();
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
}
|
2020-06-25 16:57:13 +02:00
|
|
|
}
|