diff --git a/zcash-android-wallet-app/.gitignore b/zcash-android-wallet-app/.gitignore new file mode 100644 index 0000000..2b75303 --- /dev/null +++ b/zcash-android-wallet-app/.gitignore @@ -0,0 +1,13 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/zcash-android-wallet-app/app/build.gradle b/zcash-android-wallet-app/app/build.gradle new file mode 100644 index 0000000..2a450ce --- /dev/null +++ b/zcash-android-wallet-app/app/build.gradle @@ -0,0 +1,39 @@ +apply plugin: 'com.android.application' + +apply plugin: 'kotlin-android' + +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 28 + defaultConfig { + applicationId "cash.z.android.wallet" + minSdkVersion 16 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06' + implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha06' + implementation 'android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha06' + implementation 'android.arch.navigation:navigation-ui-ktx:1.0.0-alpha06' + implementation 'androidx.core:core-ktx:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.1.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' +} diff --git a/zcash-android-wallet-app/app/build.gradle.kts b/zcash-android-wallet-app/app/build.gradle.kts deleted file mode 100644 index f0f1d68..0000000 --- a/zcash-android-wallet-app/app/build.gradle.kts +++ /dev/null @@ -1,44 +0,0 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion - -plugins { - id("com.android.application") - id("kotlin-android-extensions") - id("kotlin-android") -} - -android { - compileSdkVersion(28) - defaultConfig { - minSdkVersion(21) - targetSdkVersion(28) - applicationId = "cash.z.wallet.app" - versionCode = 1 - versionName = "1.0" - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } - buildTypes { - getByName("release") { - isMinifyEnabled = false - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") - } - } -} - -// Note: we use string primitives for dependencies rather than something fancy (like buildSrc -// variables) so that we can leverage the built-in lint check that alerts us about new versions -dependencies { - implementation(kotlin("stdlib-jdk7", KotlinCompilerVersion.VERSION)) - implementation(project(":zcash-android-welding")) - implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) - implementation("androidx.appcompat:appcompat:1.0.0") - implementation("android.arch.navigation:navigation-fragment:1.0.0-alpha06") - implementation("android.arch.navigation:navigation-ui:1.0.0-alpha06") - implementation("android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha06") - implementation("android.arch.navigation:navigation-ui-ktx:1.0.0-alpha06") - implementation("androidx.core:core-ktx:1.0.0") - implementation("com.google.android.material:material:1.0.0") - implementation("androidx.constraintlayout:constraintlayout:1.1.3") - testImplementation("junit:junit:4.12") - androidTestImplementation("androidx.test:runner:1.1.0-beta01") - androidTestImplementation("androidx.test.espresso:espresso-core:3.1.0-beta01") -} diff --git a/zcash-android-wallet-app/app/src/androidTest/java/cash/z/wallet/app/ExampleInstrumentedTest.kt b/zcash-android-wallet-app/app/src/androidTest/java/cash/z/android/wallet/ExampleInstrumentedTest.kt similarity index 84% rename from zcash-android-wallet-app/app/src/androidTest/java/cash/z/wallet/app/ExampleInstrumentedTest.kt rename to zcash-android-wallet-app/app/src/androidTest/java/cash/z/android/wallet/ExampleInstrumentedTest.kt index d4f36b1..7e603a5 100644 --- a/zcash-android-wallet-app/app/src/androidTest/java/cash/z/wallet/app/ExampleInstrumentedTest.kt +++ b/zcash-android-wallet-app/app/src/androidTest/java/cash/z/android/wallet/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package cash.z.wallet.app +package cash.z.android.wallet import androidx.test.InstrumentationRegistry import androidx.test.runner.AndroidJUnit4 @@ -19,6 +19,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getTargetContext() - assertEquals("cash.z.wallet.app", appContext.packageName) + assertEquals("cash.z.android.wallet", appContext.packageName) } } diff --git a/zcash-android-wallet-app/app/src/main/AndroidManifest.xml b/zcash-android-wallet-app/app/src/main/AndroidManifest.xml index ee73090..1632635 100644 --- a/zcash-android-wallet-app/app/src/main/AndroidManifest.xml +++ b/zcash-android-wallet-app/app/src/main/AndroidManifest.xml @@ -1,20 +1,21 @@ + package="cash.z.android.wallet"> + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> + android:name=".MainActivity" + android:label="@string/app_name" + android:theme="@style/AppTheme.NoActionBar"> diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/MainActivity.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/MainActivity.kt new file mode 100644 index 0000000..bfaa43a --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/MainActivity.kt @@ -0,0 +1,85 @@ +package cash.z.android.wallet + +import android.os.Bundle +import com.google.android.material.snackbar.Snackbar +import com.google.android.material.navigation.NavigationView +import androidx.core.view.GravityCompat +import androidx.appcompat.app.ActionBarDrawerToggle +import androidx.appcompat.app.AppCompatActivity +import android.view.Menu +import android.view.MenuItem +import kotlinx.android.synthetic.main.activity_main.* +import kotlinx.android.synthetic.main.app_bar_main.* + +class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + setSupportActionBar(toolbar) + + fab.setOnClickListener { view -> + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show() + } + + val toggle = ActionBarDrawerToggle( + this, drawer_layout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close + ) + drawer_layout.addDrawerListener(toggle) + toggle.syncState() + + nav_view.setNavigationItemSelectedListener(this) + } + + override fun onBackPressed() { + if (drawer_layout.isDrawerOpen(GravityCompat.START)) { + drawer_layout.closeDrawer(GravityCompat.START) + } else { + super.onBackPressed() + } + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + // Inflate the menu; this adds items to the action bar if it is present. + menuInflater.inflate(R.menu.main, menu) + return true + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + when (item.itemId) { + R.id.action_settings -> return true + else -> return super.onOptionsItemSelected(item) + } + } + + override fun onNavigationItemSelected(item: MenuItem): Boolean { + // Handle navigation view item clicks here. + when (item.itemId) { + R.id.nav_camera -> { + // Handle the camera action + } + R.id.nav_gallery -> { + + } + R.id.nav_slideshow -> { + + } + R.id.nav_manage -> { + + } + R.id.nav_share -> { + + } + R.id.nav_send -> { + + } + } + + drawer_layout.closeDrawer(GravityCompat.START) + return true + } +} diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/wallet/app/MainActivity.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/wallet/app/MainActivity.kt deleted file mode 100644 index 6ae8efd..0000000 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/wallet/app/MainActivity.kt +++ /dev/null @@ -1,51 +0,0 @@ -package cash.z.wallet.app - -import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity -import cash.z.wallet.sdk.jni.JniConverter -import cash.z.wallet.sdk.proto.WalletData -import com.google.android.material.bottomnavigation.BottomNavigationView -import kotlinx.android.synthetic.main.activity_main.* - -class MainActivity : AppCompatActivity() { - - var converter: JniConverter = JniConverter() - - private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> - when (item.itemId) { - R.id.navigation_send -> { - message.setText(R.string.title_send) - return@OnNavigationItemSelectedListener true - } - R.id.navigation_receive -> { - message.setText(R.string.title_recieve) - return@OnNavigationItemSelectedListener true - } - R.id.navigation_invoice -> { - val homeText = "${getString(R.string.title_invoice)}\n${getString(R.string.sdk_test_message)}\n${checkJni()}" - message.setText(homeText) - return@OnNavigationItemSelectedListener true - } - } - false - } - - private fun checkJni(): String { - try { - val walletDataArray = WalletData("Kevin", 42, "email@hotmail.com").encode() - val result = converter.sendComplexData(walletDataArray) - return when(result) { - 42 -> "Rust lib is connected!" - else -> "sent(${walletDataArray.size}) JNI call returned unexpected value: $result" - } - } catch (t: Throwable) {} - return "Failure reading from JNI" - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) - - navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) - } -} diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_camera.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..41688d5 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_gallery.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..ff8ce52 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_manage.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..a0e423c --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/drawable/ic_send_black_24dp.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_send.xml similarity index 66% rename from zcash-android-wallet-app/app/src/main/res/drawable/ic_send_black_24dp.xml rename to zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_send.xml index e145ca8..9745066 100644 --- a/zcash-android-wallet-app/app/src/main/res/drawable/ic_send_black_24dp.xml +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_send.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> + android:fillColor="#FF000000" + android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/> diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_share.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..b3e39e2 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_slideshow.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..ae51e49 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/zcash-android-wallet-app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/zcash-android-wallet-app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index 485bbd3..6348baa 100644 --- a/zcash-android-wallet-app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/zcash-android-wallet-app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -2,33 +2,33 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="108dp" android:height="108dp" - android:viewportWidth="108" - android:viewportHeight="108"> + android:viewportHeight="108" + android:viewportWidth="108"> + android:fillType="evenOdd" + android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" + android:strokeColor="#00000000" + android:strokeWidth="1"> + android:endX="78.5885" + android:endY="90.9159" + android:startX="48.7653" + android:startY="61.0927" + android:type="linear"> + android:color="#44000000" + android:offset="0.0"/> + android:color="#00000000" + android:offset="1.0"/> + android:fillColor="#FFFFFF" + android:fillType="nonZero" + android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" + android:strokeColor="#00000000" + android:strokeWidth="1"/> diff --git a/zcash-android-wallet-app/app/src/main/res/drawable/ic_launcher_background.xml b/zcash-android-wallet-app/app/src/main/res/drawable/ic_launcher_background.xml index 7ca0909..a0ad202 100644 --- a/zcash-android-wallet-app/app/src/main/res/drawable/ic_launcher_background.xml +++ b/zcash-android-wallet-app/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,171 +1,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:android="http://schemas.android.com/apk/res/android" + android:height="108dp" + android:width="108dp" + android:viewportHeight="108" + android:viewportWidth="108"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zcash-android-wallet-app/app/src/main/res/drawable/ic_qrcode_black_24dp.xml b/zcash-android-wallet-app/app/src/main/res/drawable/ic_qrcode_black_24dp.xml deleted file mode 100644 index ecfee41..0000000 --- a/zcash-android-wallet-app/app/src/main/res/drawable/ic_qrcode_black_24dp.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/drawable/ic_receipt_black_24dp.xml b/zcash-android-wallet-app/app/src/main/res/drawable/ic_receipt_black_24dp.xml deleted file mode 100644 index 4714dde..0000000 --- a/zcash-android-wallet-app/app/src/main/res/drawable/ic_receipt_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/zcash-android-wallet-app/app/src/main/res/drawable/side_nav_bar.xml b/zcash-android-wallet-app/app/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..a33798b --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/layout/activity_main.xml b/zcash-android-wallet-app/app/src/main/res/layout/activity_main.xml index 090c654..ac9a123 100644 --- a/zcash-android-wallet-app/app/src/main/res/layout/activity_main.xml +++ b/zcash-android-wallet-app/app/src/main/res/layout/activity_main.xml @@ -1,34 +1,26 @@ - + - + - + - \ No newline at end of file + diff --git a/zcash-android-wallet-app/app/src/main/res/layout/app_bar_main.xml b/zcash-android-wallet-app/app/src/main/res/layout/app_bar_main.xml new file mode 100644 index 0000000..2826dca --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/layout/app_bar_main.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/layout/content_main.xml b/zcash-android-wallet-app/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..a77788d --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/layout/content_main.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/layout/nav_header_main.xml b/zcash-android-wallet-app/app/src/main/res/layout/nav_header_main.xml new file mode 100644 index 0000000..92ca611 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/layout/nav_header_main.xml @@ -0,0 +1,37 @@ + + + + + + + + + + diff --git a/zcash-android-wallet-app/app/src/main/res/menu/activity_main_drawer.xml b/zcash-android-wallet-app/app/src/main/res/menu/activity_main_drawer.xml new file mode 100644 index 0000000..be8b0d1 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/menu/activity_main_drawer.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + diff --git a/zcash-android-wallet-app/app/src/main/res/menu/main.xml b/zcash-android-wallet-app/app/src/main/res/menu/main.xml new file mode 100644 index 0000000..d579f6f --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/menu/main.xml @@ -0,0 +1,8 @@ + + + + diff --git a/zcash-android-wallet-app/app/src/main/res/menu/navigation.xml b/zcash-android-wallet-app/app/src/main/res/menu/navigation.xml deleted file mode 100644 index 57e02bc..0000000 --- a/zcash-android-wallet-app/app/src/main/res/menu/navigation.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - diff --git a/zcash-android-wallet-app/app/src/main/res/values-v21/styles.xml b/zcash-android-wallet-app/app/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..e546804 --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,7 @@ + + + diff --git a/zcash-android-wallet-app/app/src/main/res/values/colors.xml b/zcash-android-wallet-app/app/src/main/res/values/colors.xml index 69b2233..ecb3278 100644 --- a/zcash-android-wallet-app/app/src/main/res/values/colors.xml +++ b/zcash-android-wallet-app/app/src/main/res/values/colors.xml @@ -2,5 +2,5 @@ #008577 #00574B - #D81B60 + #F1B53B diff --git a/zcash-android-wallet-app/app/src/main/res/values/dimens.xml b/zcash-android-wallet-app/app/src/main/res/values/dimens.xml index 47c8224..4ab4520 100644 --- a/zcash-android-wallet-app/app/src/main/res/values/dimens.xml +++ b/zcash-android-wallet-app/app/src/main/res/values/dimens.xml @@ -2,4 +2,7 @@ 16dp 16dp - + 8dp + 176dp + 16dp + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/values/drawables.xml b/zcash-android-wallet-app/app/src/main/res/values/drawables.xml new file mode 100644 index 0000000..52c6a6c --- /dev/null +++ b/zcash-android-wallet-app/app/src/main/res/values/drawables.xml @@ -0,0 +1,8 @@ + + @android:drawable/ic_menu_camera + @android:drawable/ic_menu_gallery + @android:drawable/ic_menu_slideshow + @android:drawable/ic_menu_manage + @android:drawable/ic_menu_share + @android:drawable/ic_menu_send + diff --git a/zcash-android-wallet-app/app/src/main/res/values/strings.xml b/zcash-android-wallet-app/app/src/main/res/values/strings.xml index 5f14330..7cb973b 100644 --- a/zcash-android-wallet-app/app/src/main/res/values/strings.xml +++ b/zcash-android-wallet-app/app/src/main/res/values/strings.xml @@ -1,6 +1,9 @@ Zcash Wallet - Send - Recieve - Invoice + Open navigation drawer + Close navigation drawer + Android Studio + android.studio@android.com + Navigation header + Settings diff --git a/zcash-android-wallet-app/app/src/main/res/values/styles.xml b/zcash-android-wallet-app/app/src/main/res/values/styles.xml index 5885930..c283e58 100644 --- a/zcash-android-wallet-app/app/src/main/res/values/styles.xml +++ b/zcash-android-wallet-app/app/src/main/res/values/styles.xml @@ -7,5 +7,13 @@ @color/colorPrimaryDark @color/colorAccent + +