From 9e72a78c975c2465481dfe06b4215ee12efa07e9 Mon Sep 17 00:00:00 2001 From: Mimoja Date: Sat, 12 Aug 2017 02:01:00 +0200 Subject: [PATCH 1/2] Add Android App without objc glue --- Android/.gitignore | 9 + Android/app/.gitignore | 1 + Android/app/CMakeLists.txt | 44 +++++ Android/app/build.gradle | 41 +++++ Android/app/proguard-rules.pro | 25 +++ .../scryptpwgen/ExampleInstrumentedTest.java | 26 +++ Android/app/src/main/AndroidManifest.xml | 24 +++ .../jetzt/scryptpwgen/MainActivity.java | 173 ++++++++++++++++++ Android/app/src/main/jni/native-lib.m | 16 ++ .../app/src/main/res/layout/activity_main.xml | 33 ++++ .../app/src/main/res/layout/content_main.xml | 23 +++ Android/app/src/main/res/menu/menu_main.xml | 16 ++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4208 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2555 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6114 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10056 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 14696 bytes Android/app/src/main/res/values/arrays.xml | 8 + Android/app/src/main/res/values/colors.xml | 6 + Android/app/src/main/res/values/dimens.xml | 3 + Android/app/src/main/res/values/strings.xml | 4 + Android/app/src/main/res/values/styles.xml | 20 ++ .../jetzt/scryptpwgen/ExampleUnitTest.java | 17 ++ Android/build.gradle | 23 +++ Android/gradle.properties | 17 ++ Android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + Android/gradlew | 160 ++++++++++++++++ Android/gradlew.bat | 90 +++++++++ Android/settings.gradle | 1 + 35 files changed, 786 insertions(+) create mode 100644 Android/.gitignore create mode 100644 Android/app/.gitignore create mode 100644 Android/app/CMakeLists.txt create mode 100644 Android/app/build.gradle create mode 100644 Android/app/proguard-rules.pro create mode 100644 Android/app/src/androidTest/java/mimoja/abfackeln/jetzt/scryptpwgen/ExampleInstrumentedTest.java create mode 100644 Android/app/src/main/AndroidManifest.xml create mode 100644 Android/app/src/main/java/mimoja/abfackeln/jetzt/scryptpwgen/MainActivity.java create mode 100644 Android/app/src/main/jni/native-lib.m create mode 100644 Android/app/src/main/res/layout/activity_main.xml create mode 100644 Android/app/src/main/res/layout/content_main.xml create mode 100644 Android/app/src/main/res/menu/menu_main.xml create mode 100644 Android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 Android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 Android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 Android/app/src/main/res/values/arrays.xml create mode 100644 Android/app/src/main/res/values/colors.xml create mode 100644 Android/app/src/main/res/values/dimens.xml create mode 100644 Android/app/src/main/res/values/strings.xml create mode 100644 Android/app/src/main/res/values/styles.xml create mode 100644 Android/app/src/test/java/mimoja/abfackeln/jetzt/scryptpwgen/ExampleUnitTest.java create mode 100644 Android/build.gradle create mode 100644 Android/gradle.properties create mode 100644 Android/gradle/wrapper/gradle-wrapper.jar create mode 100644 Android/gradle/wrapper/gradle-wrapper.properties create mode 100755 Android/gradlew create mode 100644 Android/gradlew.bat create mode 100644 Android/settings.gradle diff --git a/Android/.gitignore b/Android/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/Android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/Android/app/.gitignore b/Android/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/Android/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Android/app/CMakeLists.txt b/Android/app/CMakeLists.txt new file mode 100644 index 0000000..68b1528 --- /dev/null +++ b/Android/app/CMakeLists.txt @@ -0,0 +1,44 @@ +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.4.1) + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. + +add_library( # Sets the name of the library. + native-lib + + # Sets the library as a shared library. + SHARED + + # Provides a relative path to your source file(s). + src/main/jni/native-lib.m ) + +# Searches for a specified prebuilt library and stores the path as a +# variable. Because CMake includes system libraries in the search path by +# default, you only need to specify the name of the public NDK library +# you want to add. CMake verifies that the library exists before +# completing its build. + +find_library( # Sets the name of the path variable. + log-lib + + # Specifies the name of the NDK library that + # you want CMake to locate. + log ) + +# Specifies libraries CMake should link to your target library. You +# can link multiple libraries, such as libraries you define in this +# build script, prebuilt third-party libraries, or system libraries. + +target_link_libraries( # Specifies the target library. + native-lib + + # Links the target library to the log library + # included in the NDK. + ${log-lib} ) \ No newline at end of file diff --git a/Android/app/build.gradle b/Android/app/build.gradle new file mode 100644 index 0000000..8ba045b --- /dev/null +++ b/Android/app/build.gradle @@ -0,0 +1,41 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + buildToolsVersion "26.0.1" + defaultConfig { + applicationId "mimoja.abfackeln.jetzt.scryptpwgen" + minSdkVersion 15 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cppFlags "" + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:26.+' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'com.android.support:design:26.+' + testCompile 'junit:junit:4.12' +} diff --git a/Android/app/proguard-rules.pro b/Android/app/proguard-rules.pro new file mode 100644 index 0000000..99f2e59 --- /dev/null +++ b/Android/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /home/mimoja/Android/Sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Android/app/src/androidTest/java/mimoja/abfackeln/jetzt/scryptpwgen/ExampleInstrumentedTest.java b/Android/app/src/androidTest/java/mimoja/abfackeln/jetzt/scryptpwgen/ExampleInstrumentedTest.java new file mode 100644 index 0000000..07507be --- /dev/null +++ b/Android/app/src/androidTest/java/mimoja/abfackeln/jetzt/scryptpwgen/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package mimoja.abfackeln.jetzt.scryptpwgen; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("mimoja.abfackeln.jetzt.scryptpwgen", appContext.getPackageName()); + } +} diff --git a/Android/app/src/main/AndroidManifest.xml b/Android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..f13328d --- /dev/null +++ b/Android/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android/app/src/main/java/mimoja/abfackeln/jetzt/scryptpwgen/MainActivity.java b/Android/app/src/main/java/mimoja/abfackeln/jetzt/scryptpwgen/MainActivity.java new file mode 100644 index 0000000..dcbafe2 --- /dev/null +++ b/Android/app/src/main/java/mimoja/abfackeln/jetzt/scryptpwgen/MainActivity.java @@ -0,0 +1,173 @@ +package mimoja.abfackeln.jetzt.scryptpwgen; + +import android.content.ClipboardManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.text.InputType; +import android.view.ContextMenu; +import android.view.MenuInflater; +import android.view.textclassifier.TextClassification; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ListView; +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.view.MenuItem; +import android.widget.PopupWindow; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class MainActivity extends AppCompatActivity { + + // Used to load the 'native-lib' library on application startup. + static { + System.loadLibrary("native-lib"); + } + + List mKnownSites = null; + ArrayAdapter mAdapter = null; + + @Override + protected void onCreate(Bundle savedInstanceState) { + + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + + //Fetch known sites + final SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); + Set savedSites = sharedPref.getStringSet("knownSites", new HashSet()); + mKnownSites = new ArrayList<>(savedSites); + + //Get Handle to List + ListView siteListView = (ListView) findViewById(R.id.siteList); + registerForContextMenu(siteListView); + mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mKnownSites); + siteListView.setAdapter(mAdapter); + + for (String site : savedSites) { + mAdapter.add(site); + } + + mAdapter.notifyDataSetChanged(); + + // site List + siteListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, final View view, int i, long l) { + + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle("Choose an action") + .setItems(R.array.actions, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + final String chosen = ((TextView)view).getText().toString(); + final EditText userInput = new EditText(MainActivity.this); + userInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + switch (which){ + case 0: + createTextDialog(userInput, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + String masterPasswd = userInput.getText().toString(); + String passwd = generatePassword(chosen, masterPasswd); + ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); + clipboard.setText(passwd); + Toast.makeText(MainActivity.this, "Password generated", Toast.LENGTH_LONG).show(); + } + }); + break; + case 1: + createTextDialog(userInput, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + String masterPasswd = userInput.getText().toString(); + String passwd = generatePassword(chosen, masterPasswd); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); + alertDialogBuilder.setTitle(passwd).setCancelable(true).show(); + Toast.makeText(MainActivity.this, "Password generated", Toast.LENGTH_LONG).show(); + } + }); + + break; + case 2: + mAdapter.remove(chosen); + saveItemList(); + Toast.makeText(MainActivity.this, "Deleted", Toast.LENGTH_LONG).show(); + break; + } + } + }); + builder.create().show(); + + } + }); + + // Add button + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + final EditText userInput = new EditText(MainActivity.this); + createTextDialog(userInput, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + String site = userInput.getText().toString(); + if(site.length() != 0){ + //Show on screen + if(mKnownSites.contains(site)){ + Toast.makeText(MainActivity.this, "Already cointained", Toast.LENGTH_LONG).show(); + return; + } + mKnownSites.add(site); + saveItemList(); + } + } + }); + } + }); + + } + + public void createTextDialog(EditText userInput, DialogInterface.OnClickListener listener){ + + final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); + alertDialogBuilder.setView(userInput); + alertDialogBuilder + .setCancelable(false) + .setPositiveButton("Go",listener) + .setNegativeButton("Cancel", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog,int id) { + dialog.dismiss(); + } + } + ); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.show(); + userInput.requestFocus(); + } + + public void saveItemList(){ + mAdapter.notifyDataSetChanged(); + + final SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.clear(); + editor.putStringSet("knownSites", new HashSet<>(mKnownSites)); + editor.commit(); + } + + public native String generatePassword(String site, String password); +} diff --git a/Android/app/src/main/jni/native-lib.m b/Android/app/src/main/jni/native-lib.m new file mode 100644 index 0000000..632efcf --- /dev/null +++ b/Android/app/src/main/jni/native-lib.m @@ -0,0 +1,16 @@ +#include + +JNIEXPORT jstring JNICALL +Java_mimoja_abfackeln_jetzt_scryptpwgen_MainActivity_generatePassword(JNIEnv *env, jobject instance, + jstring site_, + jstring password_) { + const char *site = (*env)->GetStringUTFChars(env, site_, 0); + const char *password = (*env)->GetStringUTFChars(env, password_, 0); + + const char *returnPassword = "Fix me in native-lib.m"; + + (*env)->ReleaseStringUTFChars(env, site_, site); + (*env)->ReleaseStringUTFChars(env, password_, password); + + return (*env)->NewStringUTF(env, returnPassword); +} \ No newline at end of file diff --git a/Android/app/src/main/res/layout/activity_main.xml b/Android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..0f1b5a0 --- /dev/null +++ b/Android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/Android/app/src/main/res/layout/content_main.xml b/Android/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..de27c12 --- /dev/null +++ b/Android/app/src/main/res/layout/content_main.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/Android/app/src/main/res/menu/menu_main.xml b/Android/app/src/main/res/menu/menu_main.xml new file mode 100644 index 0000000..7a7c4de --- /dev/null +++ b/Android/app/src/main/res/menu/menu_main.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/Android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cde69bcccec65160d92116f20ffce4fce0b5245c GIT binary patch literal 3418 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 literal 0 HcmV?d00001 diff --git a/Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9a078e3e1a42d474c78470a73c7987cf7ac5d9a0 GIT binary patch literal 4208 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 literal 0 HcmV?d00001 diff --git a/Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..3af2608a4492ef9ae63a77ec3305aedda89594cb GIT binary patch literal 6114 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 literal 0 HcmV?d00001 diff --git a/Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..324e72cdd7480cb983fa1bcc7ce686e51ef87fe7 GIT binary patch literal 7718 zcmZ{p$IRXXZTL&R=k%^>oyT@agdZ03gy(S2h3uAn`xo;Q#=zt-9U<005SQ!gB=x zs7oODXN3&_0K`V!;5h&UZ~;I_7y#S?01&bR06xM1fVKnx=?nm%asS+=4+Q`K$68BG z8TjAbD76Oz004GZf9VAP1Qh=P1IYSJ3jj>q8p;ZWev1e2H;t5YO%LN0=$mni7RU$f zLQr88EfIGVt%NG&lR}Ru5f8tqGA@rxI*CpW-RBk}=$Ithq2wP3Vls&Vb!*0TQun?P zvP5Cr%)>u6MmbkSZEasFoe$CI&SH7vnfLAEUnk^VAAFzCD?>`7%ZuXw%Mmjq^3GRu zh%FI{QSjyKKU+*{0 z>wJT3cAWqaXqsK13(v&oB(A7rFxfzUOyi|(IETRwboZ0W*#s^rzG*HJA0Og&q;JjbZ>9hk;D_-&I`8g;WWARonr^_GWb! zT^Xw((8voS4L0z*{ivjkynrjAynQ8~i1WTJsz!dskVz`vpqt6Hl$-G6@!MiCsW&Ha zUuyPO(*F?Ulfdv#<9J(Z#xO&hVN$>wU|83iGz5X20^MZlbsTIV{HS)0 z*6SLok8QqXzG#Y%NvPCp=A2+TR7l&Oe7)5hC#|6h^k1Xe#9^%*)tvO1v;*7%%G2Yk zfA6~c@k+SR6#L6*%a^EoH=%ItTuNIIwlp0B${?a%r^vM6!B7*gtKM&q$sx$$pAcBh z5KL!AY)kU_bZ#No@6Ey&nX{WHf|7C?`ind*>6_WJ(t$x8`UR-Bwi-oT(ma+5`(Vmf zfEowTv6dp^&lx}co@v+;Lm3{Qw~$g>c8pnCOglkO@uGx?cHUIr({ z1YCBz?xW#IU0XwJRH27d8C<&k+`Q<3~< zGX5q-d7_*fD;{1?Afc5YvB=M<>g$oUFzjL zO2vX6eRbe|k}(Q}1~}L-ToUG=uODZ;N}Cf1;56|u4kh7oc-C#j(-3g6TGU5KXjJOh zKW`EL&QlkON3cK?R9S3Fj{)icgY(S5K$qM3HEKs~S>0=R8&adWdNbSf!h{=`@3poFp8L3j+;y*7% zq_oQN zbqPyz*^Ja~5})zdQhm_2JS#;xjb|V?+mC{FdIcR0GbE6YXg(Ta^gDK!w)M8A*Vm5{ zAyXo8k=nW_ll=EIdn}nwjM%N^rmmqjODY)Epnjf{LygEfFG@9w;NDEM8QyX)^4qGK zA-TEy>^~DQU$b(rF>%PeI5|lw`#9g5P9QF8niDDVw}|SFIbdU1_M!FH4t$8nT2lz%@JW(DF6PJ4l`8Kas zvp5b)3mVmDCYzsaa8|md7U5|67OS~hQrqr@c(?bRrmGQ>Mt-T-EO%dy0h)`!2AyKm zLDVS~t?yZ1J7%kSllk;Q9{Sv09HOdH3B`=5KEla_xmY6&IacCl$g5FU`rj;A@qZk# zthgTxH08NPxV*o$g7OkEHhpzflvT>XNetYqFk*Q)E6Pnj2V;w1_M`pkh?|HNMp&QN zYj&<)EBrc@4DPZgiV+(}3T0~}Opa0l_DMYV#jFDFC`cUFFWMen8>| zd{a9O(Af5&{GIC{GYdij2WFYVf#>drrE24?Qaxv#!zMn@5z74ICz7)7E`2GOs<9SJ zVzL|!nm#zH;Ml3N+-$|25zA~&)$FqLQi~

TYSD#W4maIvLbRYGJNG}V|+SXfTh>av49 z{^9ORcJ3}()1)7S{a`^01fB1E`h9UV5hSW6(-q}8yg`R4|H)cgG2$rqY+22allGpZ}`HZu=oaC4f(dx%N06y29c9x(kaVVElepEB&4(rlVRD_^z^mjl!O&02okip#dTZj*d~Y))1J08Q9F(Ir!L=_eUle09 zMJow&Kcy!VM5ay>fZvHND44Mzc>L%U)B-^foW!bLEts*$ZqBk^6^uCmj@%XrPr&28iZ4y#PU^d6IPwPwg1Ona5J_ntAhPU&YIVe@>@z4{)J z@J>GRbE*jMP#b*$)@l8F_P&01RN_s>O!+)>$cV0VJ;F@?kP`JGc z?nxHvU6}b^v-S;}mvG_8BJd$p&m4`fTSCk2VsOWkA@z?T>ST=b7x$V7ha7QHR(#*5 z6_TWs+3tWzl!zMJY{bmKN(5Ql3z$X)dZU0k)-4AEY4??{wL8TkfbLRF<-%xbba`~#7<)0U1@6#@R^-&!j7ar{%Mx1_yOPH`@>dA^_~A!Ly1F0z zfClcXgi`lNSMZDswWapVdEu*(qzDb#rx@}qPpwQDseV7`lYw%Auj(YDEK0je?LHOj z|CkbvXTCKWRBTjHwN_l>FCk~iE~8$4-x}GN6EeSpH@Mp+ydO$VQw z;3-}eZuK~>Yaq1keS^7O>Bnu(z zTtp*ZikC!%WY{m;xyzy&|5hK^la?z_v^Y&~9*a=(eoO3;%VUp!)*>Rpz32M7CiDSS zvRn~YGx|Gy1%Jw2uAHzH+9J5AsiRpW_I=DJr+u1%aD?xO%W;RamPOP)N|cRn3IArZ z=X$1AW}Pnvi|F+PCQowDk1L zl1|^Xog}jujodw32n%%-CMlYhp-n><=ZTOEo&hnRub>zIIx$$60=UFXhV(|#$OR?+30P9HY-7pL*@ zGKHks8>9JS)FjslTaOXaKqG z`!OyAPBIbt|2Y^O*Whv437}wHo1$g{Yc`hgAL+d9b2bk~#=(Qnp1TbMSgJSn`*xn3 zm+|Ru?b>f<2;nafK80TYBA6%BaXG7=Ya2jM(K3h558)kK(B8Mc|DCdkb)hrplrlJM zlp8k1%qQ8!SHtrM9{)5+Ly-5hN_~Q0BL`Gnj5tykgK=?>{#Bb#^k}(SyWET+-|-%n6Ej zORP0|@!0EIKjmFM+jpA<+f;3FECJf=6R?6 zb*{%dJx~hA-x>CIg9J`^u_8363ilZN7Qv$n3?*W^X^aF+-r6GJ#oyyZrx}v&*PHc$ z8v3lijEGONmUbXml*%+*Wb6WgW9ATF_A0bI;x*A8CO|Zn)P4LcX~&LI6-abUW!PtR zgSg9!UwwqmdB8Wxh5o=IF;+qyYq1I~Xb+j^@$rJpnN|&qdVQpz^2sD#M0k@R3}8)) z{w(8{uU|G{71OC9f-|p=Mo0@v#CAdu>M#XW>m}n9B`8459X2lORvJu9EhM!F0ufmO`pQ zTHC1!XWB!w=DM}P6N)ry^Z8{g6t6UCvKwa7k+LH4Gj~6kHzAgeVlgsQFVwKB*jTp! zL%G^i@u%iAcW1s_VW*CG&RZQwQ9Zv9Tn0$)zX!nCpGL6#cq~0YX z^+1Xh5_|lAGhrckBN*iDQBQ#|1KVkBn_G<))(oGB6xDR@0zE9A=URrJbT7JNVA^Nj zDz$Tc~1%+jURY?uAG7dHF;VNpL6n=+kU(`TZQ>yR z3UAi;j?IeH3;jWY2!AbHZex?>9x)`xNF%knWCcyk$Pp*UbYu5*R*tL$lM}-m-MsYQ zb{=Tn&-_0Ed}Yw09otQv=tzlkX63!drx2BA@(Q_HA|~@{IRn!K^x6=otsOkZK^b%_ z-3nCNQp-OW+maZfI;Hn3MO!Q<0e>+*Gkzi{^Wu z=77)BG+M2iiuv?jCf>HTqt$g+NLMC(Jg9)%CrHb5;6vqjy}z`X{O$AyIx|wSO=-B9 zUFn6CN-GL{N;VW@4#8gI21rq&14P2F@4aXU zz602k(QT*Q)@AYFlUYtu+#;!P=q)@-$1>GBKLxiO1BBsEP6lEvy6DIEPfc@4*)+7- z%n)Lh+VgGVvwKH9Qls-7i&(m*CsOG8f+NZoBr+v!)Y%}`KqEtM8hWIS5+4WhS zTm+esT$~29H{&9Riz3mJ1#-SgQ~4p2>~t7(!|uXO2vD}h+A?0z`iP5odTiB8ZGOm{ zV|}|=$xtwd@Bc55xSGo%gT6o*2GhcH&c0#1ABX*j=O3WSbV5!CNS3s(-94x?=i`8} zfIwORFRY5ZDl1WKqs<$Ulrt{GgUA@Y_b~sscK4vkoUaPTqD{n8T{7}Pq%%eGQTKX| zhFj1S2`P#%nF@%&hB2`k>5r%aO`|`ij*oU3=B#`Fu6fkqioYSOO8L9sbiUcri=+3$ zC2X+)CLQj{dIQ%Bk{-2Xs7~ACrLJ~qupVF+dNMx<>VIO%^mZFR3YrG(D1d^nz4bU~ zl4X?ia^AdEW+qTLE0jL-c=f@d)XSr^|JkfL1jW-p;=CAM(H)L=-60{$o?y>Z?ao!$ z``m`PTDKsm3^)Ez4Ta$}75*}0!|sZGYdJF)dK;3Fs=D0l?)+Z!67=#;Pfe7N@)W>~ zg~5`PL-WnD+1}mi^*^VcAB=(;&#TohCK#S#CB80jKS;!-wZt-@RPw(`a$NOv` zaqRLoZQZgZqA@pl-yl71fc<{)B^_4f=X{;iA143|g1?n8k9r&l-VPj96)F2f>(rX@ zz3j{L(`)E4&nU>~-bEghyfp@4(IVKOp`f(4;UtzRUs2iABX6l{W&ihjU3fJXy4fOV z|F_;W^GqdVb4DG9=fJ?w4KWlFgZ%l!1AsxO_>;U&GhVXXV@5X5mmM#>dL@65!h)(8 zxq&rButmqLw#Ff1a;)T79a|hL>4_E#=7(O?!0C?#wTa?iMA<4Zr_iC+1LJR^V*F{d zX!hJU>Tz)VL+*z_Jo!*Sm{zW$&+w5o=X6ygxyT#;A4!Gt2Plk=THU(vR}~fR zCb+!Q4h=`DdP!xeSw6R*v003-dwJ%0lbYFU*rddq&q%;g@Qw~EQ<)S)!!~PX%;nn~ z+EzizZ^1I}SC-*VjMAa0ra2jJiG;AM0n?|PJ^>ZN+`_`7f?fVfQZEOJXX4hG3r!iN zkpBku;TCgIn10RBidR+%Pfpgx!z%vq^MlNXWy2)83SuygXs(Y}R@&v;a=GJVUywDS1G zE*M`~N-SwN_;aZr(^p8sf_`W7aptoSp(Q10U%PLz0dv`sC{F{S5RMQ=i{v2zWU3cC z49*Z?>TfQ_vzp6gZf%7{i;Nu(RxGjfAtA$MG&GDwNqi7D5(fh&e^G);k{{}rfD#@mz zp~grACNqNj%_IA>?SEzq`|Mit9uF4cSiFx$&lR|yyFJX2Kt2FqWyl1p3eblkj#_006cfR! zhPBd_m>23u1uk`B7`-U+_Uwp`aygw3IWauBPb3WSKuPa3*H4As$JwC3Spea<&6bXuXzyTad&-~ zD-zYYDC8a&nbR>?W%2)&$TO-2JF8u*Bev}m`>dcxIeTlMAQ~F z|0Q_yU(@9ERqrEaKjoK?ql#45003}$tC)J*T6x<^+j!bpdD{V^!Xn}V!cqdl5{4qe v(h`!=5>f)flG4J$^j|g2{*U15X8Xq8|Nj@94^FrK(`+?Vbd+lpEkpkY0dR%J literal 0 HcmV?d00001 diff --git a/Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9bec2e623103ac9713b00cad8502a057c1efda61 GIT binary patch literal 10056 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 literal 0 HcmV?d00001 diff --git a/Android/app/src/main/res/values/arrays.xml b/Android/app/src/main/res/values/arrays.xml new file mode 100644 index 0000000..0151d7c --- /dev/null +++ b/Android/app/src/main/res/values/arrays.xml @@ -0,0 +1,8 @@ + + + + Generate password and copy to clipboard + Generate password and show + Remove + + \ No newline at end of file diff --git a/Android/app/src/main/res/values/colors.xml b/Android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..b7014cb --- /dev/null +++ b/Android/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #4081FF + diff --git a/Android/app/src/main/res/values/dimens.xml b/Android/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..59a0b0c --- /dev/null +++ b/Android/app/src/main/res/values/dimens.xml @@ -0,0 +1,3 @@ + + 16dp + diff --git a/Android/app/src/main/res/values/strings.xml b/Android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..c2c51e2 --- /dev/null +++ b/Android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + SCryptPWGen + Settings + diff --git a/Android/app/src/main/res/values/styles.xml b/Android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..545b9c6 --- /dev/null +++ b/Android/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + +