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