diff --git a/app/build.gradle b/app/build.gradle
index e93dcd0f..88d8285b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -25,6 +25,7 @@ dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.github.nisrulz:recyclerviewhelper:24.1.1'
compile 'com.android.support:design:24.1.1'
+ compile 'agency.tango.android:material-intro-screen:0.0.3'
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
compile 'me.dm7.barcodescanner:zxing:1.9'
compile 'com.android.support:cardview-v7:24.1.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 95e53929..46217dff 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,7 +6,7 @@
@@ -22,8 +22,14 @@
-
+
+
+
diff --git a/app/src/main/java/me/impy/aegis/IntroActivity.java b/app/src/main/java/me/impy/aegis/IntroActivity.java
new file mode 100644
index 00000000..22209a90
--- /dev/null
+++ b/app/src/main/java/me/impy/aegis/IntroActivity.java
@@ -0,0 +1,56 @@
+package me.impy.aegis;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+import android.widget.Toast;
+
+import agency.tango.materialintroscreen.MaterialIntroActivity;
+import agency.tango.materialintroscreen.MessageButtonBehaviour;
+import agency.tango.materialintroscreen.SlideFragmentBuilder;
+
+public class IntroActivity extends MaterialIntroActivity {
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addSlide(new SlideFragmentBuilder()
+ .backgroundColor(R.color.colorPrimary)
+ .buttonsColor(R.color.colorAccent)
+ .image(R.drawable.intro_shield)
+ .title("Welcome")
+ .description("Aegis is a brand new open source(!) authenticator app which generates tokens for your accounts.")
+ .build());
+
+ addSlide(new SlideFragmentBuilder()
+ .backgroundColor(R.color.colorAccent)
+ .buttonsColor(R.color.colorPrimary)
+ .neededPermissions(new String[]{Manifest.permission.CAMERA})
+ .image(R.drawable.intro_scanner)
+ .title("Permissions")
+ .description("Aegis needs permission to your camera in order to function properly. This is needed to scan QR codes.")
+ .build(),
+ new MessageButtonBehaviour(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ }
+ }, "Permission granted"));
+ }
+
+ @Override
+ public void onFinish() {
+ super.onFinish();
+ SharedPreferences prefs = this.getSharedPreferences("me.impy.aegis", Context.MODE_PRIVATE);
+ prefs.edit().putBoolean("passedIntro", true).apply();
+ }
+
+}
diff --git a/app/src/main/java/me/impy/aegis/MainActivity.java b/app/src/main/java/me/impy/aegis/MainActivity.java
index 612a6926..b87e7942 100644
--- a/app/src/main/java/me/impy/aegis/MainActivity.java
+++ b/app/src/main/java/me/impy/aegis/MainActivity.java
@@ -4,6 +4,7 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
@@ -42,6 +43,14 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
+ SharedPreferences prefs = this.getSharedPreferences("me.impy.aegis", Context.MODE_PRIVATE);
+ if(!prefs.getBoolean("passedIntro", false))
+ {
+ Intent intro = new Intent(this, IntroActivity.class);
+ startActivity(intro);
+ }
+
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@@ -109,35 +118,6 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(this, AddProfileActivity.class);
intent.putExtra("KeyProfile", keyProfile);
startActivityForResult(intent, ADD_KEYINFO);
- /* new LovelyTextInputDialog(this, R.style.EditTextTintTheme)
- .setTopColorRes(R.color.colorHeaderSuccess)
- .setTitle("New profile added")
- .setMessage("How do you want to call it?")
- .setIcon(R.drawable.ic_check)
- .setInitialInput(keyProfile.Name)
- .setInputFilter("Nah, not possible man.", new LovelyTextInputDialog.TextFilter() {
- @Override
- public boolean check(String text) {
- return true;
- //return text.matches("\\w+");
- }
- })
- .setConfirmButton(android.R.string.ok, new LovelyTextInputDialog.OnTextInputConfirmListener() {
- @Override
- public void onTextInputConfirmed(String text) {
- keyProfile.Name = text;
- mKeyProfiles.add(keyProfile);
- mKeyProfileAdapter.notifyDataSetChanged();
-
- try {
- database.addKey(keyProfile);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- })
- .show();*/
-
//TODO: do something with the result.
}
}
diff --git a/app/src/main/res/drawable-hdpi/intro_scanner.png b/app/src/main/res/drawable-hdpi/intro_scanner.png
new file mode 100644
index 00000000..95693361
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/intro_scanner.png differ
diff --git a/app/src/main/res/drawable-hdpi/intro_shield.png b/app/src/main/res/drawable-hdpi/intro_shield.png
new file mode 100644
index 00000000..d4b16bb1
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/intro_shield.png differ
diff --git a/app/src/main/res/drawable-mdpi/intro_scanner.png b/app/src/main/res/drawable-mdpi/intro_scanner.png
new file mode 100644
index 00000000..2f6e4c57
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/intro_scanner.png differ
diff --git a/app/src/main/res/drawable-mdpi/intro_shield.png b/app/src/main/res/drawable-mdpi/intro_shield.png
new file mode 100644
index 00000000..d39d2dea
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/intro_shield.png differ
diff --git a/app/src/main/res/drawable-xhdpi/intro_scanner.png b/app/src/main/res/drawable-xhdpi/intro_scanner.png
new file mode 100644
index 00000000..6c4da547
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/intro_scanner.png differ
diff --git a/app/src/main/res/drawable-xhdpi/intro_shield.png b/app/src/main/res/drawable-xhdpi/intro_shield.png
new file mode 100644
index 00000000..34b4e5bf
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/intro_shield.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/intro_scanner.png b/app/src/main/res/drawable-xxhdpi/intro_scanner.png
new file mode 100644
index 00000000..fb3e23f6
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/intro_scanner.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/intro_shield.png b/app/src/main/res/drawable-xxhdpi/intro_shield.png
new file mode 100644
index 00000000..a3860c91
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/intro_shield.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/intro_scanner.png b/app/src/main/res/drawable-xxxhdpi/intro_scanner.png
new file mode 100644
index 00000000..634f6c5d
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/intro_scanner.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/intro_shield.png b/app/src/main/res/drawable-xxxhdpi/intro_shield.png
new file mode 100644
index 00000000..71dbf854
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/intro_shield.png differ
diff --git a/app/src/main/res/drawable/icon.png b/app/src/main/res/drawable/icon.png
new file mode 100644
index 00000000..7c257253
Binary files /dev/null and b/app/src/main/res/drawable/icon.png differ
diff --git a/app/src/main/res/layout/activity_intro.xml b/app/src/main/res/layout/activity_intro.xml
new file mode 100644
index 00000000..c7b5f978
--- /dev/null
+++ b/app/src/main/res/layout/activity_intro.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/content_intro.xml b/app/src/main/res/layout/content_intro.xml
new file mode 100644
index 00000000..3edcaaa5
--- /dev/null
+++ b/app/src/main/res/layout/content_intro.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/app/src/main/res/mipmap-hdpi/icon.png b/app/src/main/res/mipmap-hdpi/icon.png
new file mode 100644
index 00000000..342999bf
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icon.png differ
diff --git a/app/src/main/res/mipmap-mdpi/icon.png b/app/src/main/res/mipmap-mdpi/icon.png
new file mode 100644
index 00000000..00c4836c
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icon.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon.png b/app/src/main/res/mipmap-xhdpi/icon.png
new file mode 100644
index 00000000..d7abd44c
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/icon.png b/app/src/main/res/mipmap-xxhdpi/icon.png
new file mode 100644
index 00000000..ecc7b3a6
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon.png b/app/src/main/res/mipmap-xxxhdpi/icon.png
new file mode 100644
index 00000000..cde38497
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icon.png differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6850c3c8..2d9ee876 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,5 @@
Aegis
Settings
+ IntroActivity