diff --git a/app/build.gradle b/app/build.gradle
index 17c554e..ee7a10b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,7 +6,7 @@ android {
defaultConfig {
applicationId "app.fedilab.mobilizon"
- minSdkVersion 21
+ minSdkVersion 23
targetSdkVersion 30
versionCode 1
versionName "1.0"
@@ -49,6 +49,7 @@ dependencies {
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+ implementation 'com.github.ybq:Android-SpinKit:1.4.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
diff --git a/app/src/main/java/app/fedilab/mobilizon/MainActivity.java b/app/src/main/java/app/fedilab/mobilizon/MainActivity.java
index c35dac6..31fd09c 100644
--- a/app/src/main/java/app/fedilab/mobilizon/MainActivity.java
+++ b/app/src/main/java/app/fedilab/mobilizon/MainActivity.java
@@ -5,13 +5,19 @@ import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
+import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.text.SpannableString;
+import android.text.style.UnderlineSpan;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -21,6 +27,7 @@ import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
+import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -49,7 +56,7 @@ import es.dmoral.toasty.Toasty;
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
- public static int PICK_INSTANCE = 5641;
+ //public static int PICK_INSTANCE = 5641;
public static boolean isAuthenticated = false;
final private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124;
private final LocationListener mLocationListener = new LocationListener() {
@@ -166,6 +173,58 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
if (id == R.id.action_instance) {
showRadioButtonDialogFullInstances();
return true;
+ } else if (id == R.id.action_about) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ LayoutInflater inflater = getLayoutInflater();
+ View dialogView = inflater.inflate(R.layout.popup_about, new LinearLayout(MainActivity.this), false);
+ TextView about = dialogView.findViewById(R.id.about);
+ TextView terms = dialogView.findViewById(R.id.terms);
+ TextView license = dialogView.findViewById(R.id.license);
+ TextView about_the_app = dialogView.findViewById(R.id.about_the_app);
+
+ SpannableString contentAbout = new SpannableString(about.getText().toString());
+ contentAbout.setSpan(new UnderlineSpan(), 0, contentAbout.length(), 0);
+ about.setText(contentAbout);
+ about.setOnClickListener(v -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://" + Helper.getLiveInstance(MainActivity.this) + "/about"));
+ startActivity(browserIntent);
+ });
+
+ SpannableString contentTerms = new SpannableString(terms.getText().toString());
+ contentTerms.setSpan(new UnderlineSpan(), 0, contentTerms.length(), 0);
+ terms.setText(contentTerms);
+ terms.setOnClickListener(v -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://" + Helper.getLiveInstance(MainActivity.this) + "/terms"));
+ startActivity(browserIntent);
+ });
+ SpannableString contentLicense = new SpannableString(license.getText().toString());
+ contentLicense.setSpan(new UnderlineSpan(), 0, contentTerms.length(), 0);
+ license.setText(contentLicense);
+ license.setOnClickListener(v -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://framagit.org/framasoft/mobilizon/blob/master/LICENSE"));
+ startActivity(browserIntent);
+ });
+
+ try {
+ PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
+ String version = pInfo.versionName;
+ about_the_app.setText(getResources().getString(R.string.about_the_app, version));
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+
+ SpannableString contentAboutApp = new SpannableString(about_the_app.getText().toString());
+ contentAboutApp.setSpan(new UnderlineSpan(), 0, contentAboutApp.length(), 0);
+ about_the_app.setText(contentAboutApp);
+ about_the_app.setOnClickListener(v -> {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://framagit.org/tom79/mobilizon-android-app"));
+ startActivity(browserIntent);
+ });
+
+ builder.setView(dialogView);
+ builder
+ .setPositiveButton(R.string.close, (dialog, which) -> dialog.dismiss())
+ .setIcon(R.drawable.ic_baseline_info_24)
+ .show();
}
return super.onOptionsItemSelected(item);
diff --git a/app/src/main/java/app/fedilab/mobilizon/client/entities/WellKnownNodeinfo.java b/app/src/main/java/app/fedilab/mobilizon/client/entities/WellKnownNodeinfo.java
index 55e76d7..daa85f8 100644
--- a/app/src/main/java/app/fedilab/mobilizon/client/entities/WellKnownNodeinfo.java
+++ b/app/src/main/java/app/fedilab/mobilizon/client/entities/WellKnownNodeinfo.java
@@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.List;
-@SuppressWarnings("unused")
+@SuppressWarnings({"unused", "RedundantSuppression"})
public class WellKnownNodeinfo {
@SerializedName("links")
diff --git a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebChromeClient.java b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebChromeClient.java
index 3ad7421..a914eb9 100644
--- a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebChromeClient.java
+++ b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebChromeClient.java
@@ -26,8 +26,6 @@ import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatActivity;
-import app.fedilab.mobilizon.MainActivity;
-
/**
* Created by Thomas
diff --git a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java
index 0701342..9a2561d 100644
--- a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java
+++ b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java
@@ -87,7 +87,6 @@ public class MobilizonWebViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
- view.setVisibility(View.INVISIBLE);
super.onPageStarted(view, url, favicon);
if (activity instanceof MainActivity) {
((MainActivity) activity).showProgressDialog();
diff --git a/app/src/main/res/drawable/ic_baseline_info_24.xml b/app/src/main/res/drawable/ic_baseline_info_24.xml
new file mode 100644
index 0000000..17255b7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_info_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
index 99576a5..953f8dd 100644
--- a/app/src/main/res/layout/content_main.xml
+++ b/app/src/main/res/layout/content_main.xml
@@ -30,17 +30,16 @@
-
+ android:layout_gravity="center"
+ app:SpinKit_Color="@color/colorPrimary" />
diff --git a/app/src/main/res/layout/popup_about.xml b/app/src/main/res/layout/popup_about.xml
new file mode 100644
index 0000000..9834c85
--- /dev/null
+++ b/app/src/main/res/layout/popup_about.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index 118e3fb..1e8fce7 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -13,4 +13,10 @@
android:orderInCategory="100"
android:title="@string/change_instance"
app:showAsAction="never" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 32724cf..28e881c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -31,4 +31,10 @@
My account
Register
Account
+ About
+ Mobilizon logo
+ Close
+ Terms
+ License
+ About the app (Release %1$s)
\ No newline at end of file