diff options
42 files changed, 984 insertions, 0 deletions
| diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build
\ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..aa8bfbb --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,47 @@ +plugins { +    id 'com.android.application' +    id 'kotlin-android' +} + +android { +    compileSdkVersion 30 +    buildToolsVersion "30.0.3" + +    defaultConfig { +        applicationId "xyz.adjutor.aniki" +        minSdkVersion 23 +        targetSdkVersion 30 +        versionCode 1 +        versionName "1.0" + +        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" +    } + +    buildTypes { +        release { +            minifyEnabled false +            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' +        } +    } +    compileOptions { +        sourceCompatibility JavaVersion.VERSION_1_8 +        targetCompatibility JavaVersion.VERSION_1_8 +    } +    kotlinOptions { +        jvmTarget = '1.8' +    } +} + +dependencies { + +    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +    implementation 'androidx.core:core-ktx:1.2.0' +    implementation 'androidx.appcompat:appcompat:1.2.0' +    implementation 'com.google.android.material:material:1.3.0' +    implementation 'androidx.constraintlayout:constraintlayout:2.0.4' +    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.3' +    implementation 'androidx.navigation:navigation-ui-ktx:2.3.3' +    testImplementation 'junit:junit:4.+' +    androidTestImplementation 'androidx.test.ext:junit:1.1.2' +    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' +}
\ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +#   http://developer.android.com/guide/developing/tools/proguard.html + +# 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
\ No newline at end of file diff --git a/app/src/androidTest/java/xyz/adjutor/aniki/ExampleInstrumentedTest.kt b/app/src/androidTest/java/xyz/adjutor/aniki/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..517647e --- /dev/null +++ b/app/src/androidTest/java/xyz/adjutor/aniki/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package xyz.adjutor.aniki + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { +    @Test +    fun useAppContext() { +        // Context of the app under test. +        val appContext = InstrumentationRegistry.getInstrumentation().targetContext +        assertEquals("xyz.adjutor.aniki", appContext.packageName) +    } +}
\ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..81bef7c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +    package="xyz.adjutor.aniki"> + +    <application +        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/Theme.Aniki"> +        <activity +            android:name=".MainActivity" +            android:label="@string/app_name" +            android:theme="@style/Theme.Aniki.NoActionBar"> +            <intent-filter> +                <action android:name="android.intent.action.MAIN" /> + +                <category android:name="android.intent.category.LAUNCHER" /> +            </intent-filter> +        </activity> +    </application> + +</manifest>
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/FirstFragment.kt b/app/src/main/java/xyz/adjutor/aniki/FirstFragment.kt new file mode 100644 index 0000000..05e5673 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/FirstFragment.kt @@ -0,0 +1,31 @@ +package xyz.adjutor.aniki + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import androidx.navigation.fragment.findNavController + +/** + * A simple [Fragment] subclass as the default destination in the navigation. + */ +class FirstFragment : Fragment() { + +    override fun onCreateView( +            inflater: LayoutInflater, container: ViewGroup?, +            savedInstanceState: Bundle? +    ): View? { +        // Inflate the layout for this fragment +        return inflater.inflate(R.layout.fragment_first, container, false) +    } + +    override fun onViewCreated(view: View, savedInstanceState: Bundle?) { +        super.onViewCreated(view, savedInstanceState) + +        view.findViewById<Button>(R.id.button_first).setOnClickListener { +            findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) +        } +    } +}
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt b/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt new file mode 100644 index 0000000..59f9a42 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/MainActivity.kt @@ -0,0 +1,40 @@ +package xyz.adjutor.aniki + +import android.os.Bundle +import com.google.android.material.floatingactionbutton.FloatingActionButton +import com.google.android.material.snackbar.Snackbar +import androidx.appcompat.app.AppCompatActivity +import android.view.Menu +import android.view.MenuItem + +class MainActivity : AppCompatActivity() { + +    override fun onCreate(savedInstanceState: Bundle?) { +        super.onCreate(savedInstanceState) +        setContentView(R.layout.activity_main) +        setSupportActionBar(findViewById(R.id.toolbar)) + +        findViewById<FloatingActionButton>(R.id.fab).setOnClickListener { view -> +            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) +                    .setAction("Action", null).show() +        } +        val industryNews = News("Horror Manga Ajin Ends Nine-Year Serialization") + +    } + +    override fun onCreateOptionsMenu(menu: Menu): Boolean { +        // Inflate the menu; this adds items to the action bar if it is present. +        menuInflater.inflate(R.menu.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. +        return when (item.itemId) { +            R.id.action_settings -> true +            else -> super.onOptionsItemSelected(item) +        } +    } +}
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/News.kt b/app/src/main/java/xyz/adjutor/aniki/News.kt new file mode 100644 index 0000000..c4e5759 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/News.kt @@ -0,0 +1,5 @@ +package xyz.adjutor.aniki + +data class News ( +    val title: String +)
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/SecondFragment.kt b/app/src/main/java/xyz/adjutor/aniki/SecondFragment.kt new file mode 100644 index 0000000..a994c61 --- /dev/null +++ b/app/src/main/java/xyz/adjutor/aniki/SecondFragment.kt @@ -0,0 +1,31 @@ +package xyz.adjutor.aniki + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import androidx.navigation.fragment.findNavController + +/** + * A simple [Fragment] subclass as the second destination in the navigation. + */ +class SecondFragment : Fragment() { + +    override fun onCreateView( +            inflater: LayoutInflater, container: ViewGroup?, +            savedInstanceState: Bundle? +    ): View? { +        // Inflate the layout for this fragment +        return inflater.inflate(R.layout.fragment_second, container, false) +    } + +    override fun onViewCreated(view: View, savedInstanceState: Bundle?) { +        super.onViewCreated(view, savedInstanceState) + +        view.findViewById<Button>(R.id.button_second).setOnClickListener { +            findNavController().navigate(R.id.action_SecondFragment_to_FirstFragment) +        } +    } +}
\ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:aapt="http://schemas.android.com/aapt" +    android:width="108dp" +    android:height="108dp" +    android:viewportWidth="108" +    android:viewportHeight="108"> +    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"> +        <aapt:attr name="android:fillColor"> +            <gradient +                android:endX="85.84757" +                android:endY="92.4963" +                android:startX="42.9492" +                android:startY="49.59793" +                android:type="linear"> +                <item +                    android:color="#44000000" +                    android:offset="0.0" /> +                <item +                    android:color="#00000000" +                    android:offset="1.0" /> +            </gradient> +        </aapt:attr> +    </path> +    <path +        android:fillColor="#FFFFFF" +        android:fillType="nonZero" +        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z" +        android:strokeWidth="1" +        android:strokeColor="#00000000" /> +</vector>
\ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" +    android:width="108dp" +    android:height="108dp" +    android:viewportWidth="108" +    android:viewportHeight="108"> +    <path +        android:fillColor="#3DDC84" +        android:pathData="M0,0h108v108h-108z" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M9,0L9,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,0L19,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M29,0L29,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M39,0L39,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M49,0L49,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M59,0L59,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M69,0L69,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M79,0L79,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M89,0L89,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M99,0L99,108" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,9L108,9" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,19L108,19" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,29L108,29" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,39L108,39" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,49L108,49" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,59L108,59" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,69L108,69" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,79L108,79" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,89L108,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M0,99L108,99" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,29L89,29" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,39L89,39" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,49L89,49" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,59L89,59" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,69L89,69" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M19,79L89,79" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M29,19L29,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M39,19L39,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M49,19L49,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M59,19L59,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M69,19L69,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +    <path +        android:fillColor="#00000000" +        android:pathData="M79,19L79,89" +        android:strokeWidth="0.8" +        android:strokeColor="#33FFFFFF" /> +</vector> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..616f503 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    xmlns:tools="http://schemas.android.com/tools" +    android:layout_width="match_parent" +    android:layout_height="match_parent" +    tools:context=".MainActivity"> + +    <com.google.android.material.appbar.AppBarLayout +        android:layout_width="match_parent" +        android:layout_height="wrap_content" +        android:theme="@style/Theme.Aniki.AppBarOverlay"> + +        <androidx.appcompat.widget.Toolbar +            android:id="@+id/toolbar" +            android:layout_width="match_parent" +            android:layout_height="?attr/actionBarSize" +            android:background="?attr/colorPrimary" +            app:popupTheme="@style/Theme.Aniki.PopupOverlay" /> + +    </com.google.android.material.appbar.AppBarLayout> + +    <include layout="@layout/content_main" /> + +    <com.google.android.material.floatingactionbutton.FloatingActionButton +        android:id="@+id/fab" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:layout_gravity="bottom|end" +        android:layout_margin="@dimen/fab_margin" +        app:srcCompat="@android:drawable/ic_dialog_email" /> + +</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..c4e7db6 --- /dev/null +++ b/app/src/main/res/layout/content_main.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    android:layout_width="match_parent" +    android:layout_height="match_parent" +    app:layout_behavior="@string/appbar_scrolling_view_behavior"> + +    <fragment +        android:id="@+id/nav_host_fragment" +        android:name="androidx.navigation.fragment.NavHostFragment" +        android:layout_width="0dp" +        android:layout_height="0dp" +        app:defaultNavHost="true" +        app:layout_constraintBottom_toBottomOf="parent" +        app:layout_constraintLeft_toLeftOf="parent" +        app:layout_constraintRight_toRightOf="parent" +        app:layout_constraintTop_toTopOf="parent" +        app:navGraph="@navigation/nav_graph" /> +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_first.xml b/app/src/main/res/layout/fragment_first.xml new file mode 100644 index 0000000..435c85b --- /dev/null +++ b/app/src/main/res/layout/fragment_first.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    xmlns:tools="http://schemas.android.com/tools" +    android:layout_width="match_parent" +    android:layout_height="match_parent" +    tools:context=".FirstFragment"> + +    <TextView +        android:id="@+id/textview_first" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:text="@string/hello_first_fragment" +        app:layout_constraintBottom_toTopOf="@id/button_first" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toTopOf="parent" /> + +    <Button +        android:id="@+id/button_first" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:text="PRESS ON ME" +        app:layout_constraintBottom_toBottomOf="parent" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toBottomOf="@id/textview_first" /> + +    <Button +        android:id="@+id/button_second" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:text="NO, PRESS ON ME !" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintTop_toBottomOf="@id/button_first" +        app:layout_constraintStart_toStartOf="parent" +        /> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_second.xml b/app/src/main/res/layout/fragment_second.xml new file mode 100644 index 0000000..bd90524 --- /dev/null +++ b/app/src/main/res/layout/fragment_second.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    xmlns:tools="http://schemas.android.com/tools" +    android:layout_width="match_parent" +    android:layout_height="match_parent" +    tools:context=".SecondFragment"> + +    <TextView +        android:id="@+id/textview_second" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        app:layout_constraintBottom_toTopOf="@id/button_second" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toTopOf="parent" /> + +    <Button +        android:id="@+id/button_second" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:text="@string/previous" +        app:layout_constraintBottom_toBottomOf="parent" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toBottomOf="@id/textview_second" /> +</androidx.constraintlayout.widget.ConstraintLayout>
\ 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 new file mode 100644 index 0000000..4d1a64f --- /dev/null +++ b/app/src/main/res/menu/menu_main.xml @@ -0,0 +1,10 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    xmlns:tools="http://schemas.android.com/tools" +    tools:context="xyz.adjutor.aniki.MainActivity"> +    <item +        android:id="@+id/action_settings" +        android:orderInCategory="100" +        android:title="@string/action_settings" +        app:showAsAction="never" /> +</menu>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> +    <background android:drawable="@drawable/ic_launcher_background" /> +    <foreground android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> +    <background android:drawable="@drawable/ic_launcher_background" /> +    <foreground android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.pngBinary files differ new file mode 100644 index 0000000..a571e60 --- /dev/null +++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.pngBinary files differ new file mode 100644 index 0000000..61da551 --- /dev/null +++ b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.pngBinary files differ new file mode 100644 index 0000000..c41dd28 --- /dev/null +++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.pngBinary files differ new file mode 100644 index 0000000..db5080a --- /dev/null +++ b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.pngBinary files differ new file mode 100644 index 0000000..6dba46d --- /dev/null +++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngBinary files differ new file mode 100644 index 0000000..da31a87 --- /dev/null +++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngBinary files differ new file mode 100644 index 0000000..15ac681 --- /dev/null +++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngBinary files differ new file mode 100644 index 0000000..b216f2d --- /dev/null +++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngBinary files differ new file mode 100644 index 0000000..f25a419 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngBinary files differ new file mode 100644 index 0000000..e96783c --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml new file mode 100644 index 0000000..5441348 --- /dev/null +++ b/app/src/main/res/navigation/nav_graph.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<navigation xmlns:android="http://schemas.android.com/apk/res/android" +    xmlns:app="http://schemas.android.com/apk/res-auto" +    xmlns:tools="http://schemas.android.com/tools" +    android:id="@+id/nav_graph" +    app:startDestination="@id/FirstFragment"> + +    <fragment +        android:id="@+id/FirstFragment" +        android:name="xyz.adjutor.aniki.FirstFragment" +        android:label="@string/first_fragment_label" +        tools:layout="@layout/fragment_first"> + +        <action +            android:id="@+id/action_FirstFragment_to_SecondFragment" +            app:destination="@id/SecondFragment" /> +    </fragment> +    <fragment +        android:id="@+id/SecondFragment" +        android:name="xyz.adjutor.aniki.SecondFragment" +        android:label="@string/second_fragment_label" +        tools:layout="@layout/fragment_second"> + +        <action +            android:id="@+id/action_SecondFragment_to_FirstFragment" +            app:destination="@id/FirstFragment" /> +    </fragment> +</navigation>
\ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..e1dd5d0 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ +<resources xmlns:tools="http://schemas.android.com/tools"> +    <!-- Base application theme. --> +    <style name="Theme.Aniki" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> +        <!-- Primary brand color. --> +        <item name="colorPrimary">@color/purple_200</item> +        <item name="colorPrimaryVariant">@color/purple_700</item> +        <item name="colorOnPrimary">@color/black</item> +        <!-- Secondary brand color. --> +        <item name="colorSecondary">@color/teal_200</item> +        <item name="colorSecondaryVariant">@color/teal_200</item> +        <item name="colorOnSecondary">@color/black</item> +        <!-- Status bar color. --> +        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> +        <!-- Customize your theme here. --> +    </style> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> +    <color name="purple_200">#FFBB86FC</color> +    <color name="purple_500">#FF6200EE</color> +    <color name="purple_700">#FF3700B3</color> +    <color name="teal_200">#FF03DAC5</color> +    <color name="teal_700">#FF018786</color> +    <color name="black">#FF000000</color> +    <color name="white">#FFFFFFFF</color> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..125df87 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,3 @@ +<resources> +    <dimen name="fab_margin">16dp</dimen> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..544b6af --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,12 @@ +<resources> +    <string name="app_name">Aniki</string> +    <string name="action_settings">Settings</string> +    <!-- Strings used for fragments for navigation --> +    <string name="first_fragment_label">First Fragment</string> +    <string name="second_fragment_label">Second Fragment</string> +    <string name="next">Next</string> +    <string name="previous">Previous</string> + +    <string name="hello_first_fragment">Hello first fragment</string> +    <string name="hello_second_fragment">Hello second fragment. Arg: %1$s</string> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..c79cf5a --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,25 @@ +<resources xmlns:tools="http://schemas.android.com/tools"> +    <!-- Base application theme. --> +    <style name="Theme.Aniki" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> +        <!-- Primary brand color. --> +        <item name="colorPrimary">@color/purple_500</item> +        <item name="colorPrimaryVariant">@color/purple_700</item> +        <item name="colorOnPrimary">@color/white</item> +        <!-- Secondary brand color. --> +        <item name="colorSecondary">@color/teal_200</item> +        <item name="colorSecondaryVariant">@color/teal_700</item> +        <item name="colorOnSecondary">@color/black</item> +        <!-- Status bar color. --> +        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> +        <!-- Customize your theme here. --> +    </style> + +    <style name="Theme.Aniki.NoActionBar"> +        <item name="windowActionBar">false</item> +        <item name="windowNoTitle">true</item> +    </style> + +    <style name="Theme.Aniki.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> + +    <style name="Theme.Aniki.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> +</resources>
\ No newline at end of file diff --git a/app/src/test/java/xyz/adjutor/aniki/ExampleUnitTest.kt b/app/src/test/java/xyz/adjutor/aniki/ExampleUnitTest.kt new file mode 100644 index 0000000..7aacf1c --- /dev/null +++ b/app/src/test/java/xyz/adjutor/aniki/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package xyz.adjutor.aniki + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { +    @Test +    fun addition_isCorrect() { +        assertEquals(4, 2 + 2) +    } +}
\ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..ef7bd27 --- /dev/null +++ b/build.gradle @@ -0,0 +1,26 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { +    ext.kotlin_version = "1.3.72" +    repositories { +        google() +        jcenter() +    } +    dependencies { +        classpath "com.android.tools.build:gradle:4.1.2" +        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + +        // NOTE: Do not place your application dependencies here; they belong +        // in the individual module build.gradle files +    } +} + +allprojects { +    repositories { +        google() +        jcenter() +    } +} + +task clean(type: Delete) { +    delete rootProject.buildDir +}
\ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..98bed16 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official
\ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jarBinary files differ new file mode 100644 index 0000000..f6b961f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3f5e8f1 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Feb 09 10:05:45 CET 2021 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +##  Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do +    ls=`ls -ld "$PRG"` +    link=`expr "$ls" : '.*-> \(.*\)$'` +    if expr "$link" : '/.*' > /dev/null; then +        PRG="$link" +    else +        PRG=`dirname "$PRG"`"/$link" +    fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { +    echo "$*" +} + +die () { +    echo +    echo "$*" +    echo +    exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in +  CYGWIN* ) +    cygwin=true +    ;; +  Darwin* ) +    darwin=true +    ;; +  MINGW* ) +    msys=true +    ;; +  NONSTOP* ) +    nonstop=true +    ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then +    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +        # IBM's JDK on AIX uses strange locations for the executables +        JAVACMD="$JAVA_HOME/jre/sh/java" +    else +        JAVACMD="$JAVA_HOME/bin/java" +    fi +    if [ ! -x "$JAVACMD" ] ; then +        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +    fi +else +    JAVACMD="java" +    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then +    MAX_FD_LIMIT=`ulimit -H -n` +    if [ $? -eq 0 ] ; then +        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then +            MAX_FD="$MAX_FD_LIMIT" +        fi +        ulimit -n $MAX_FD +        if [ $? -ne 0 ] ; then +            warn "Could not set maximum file descriptor limit: $MAX_FD" +        fi +    else +        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" +    fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then +    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then +    APP_HOME=`cygpath --path --mixed "$APP_HOME"` +    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` +    JAVACMD=`cygpath --unix "$JAVACMD"` + +    # We build the pattern for arguments to be converted via cygpath +    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` +    SEP="" +    for dir in $ROOTDIRSRAW ; do +        ROOTDIRS="$ROOTDIRS$SEP$dir" +        SEP="|" +    done +    OURCYGPATTERN="(^($ROOTDIRS))" +    # Add a user-defined pattern to the cygpath arguments +    if [ "$GRADLE_CYGPATTERN" != "" ] ; then +        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" +    fi +    # Now convert the arguments - kludge to limit ourselves to /bin/sh +    i=0 +    for arg in "$@" ; do +        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` +        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option + +        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition +            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` +        else +            eval `echo args$i`="\"$arg\"" +        fi +        i=$((i+1)) +    done +    case $i in +        (0) set -- ;; +        (1) set -- "$args0" ;; +        (2) set -- "$args0" "$args1" ;; +        (3) set -- "$args0" "$args1" "$args2" ;; +        (4) set -- "$args0" "$args1" "$args2" "$args3" ;; +        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; +        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; +        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; +        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; +        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +    esac +fi + +# Escape application args +save () { +    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done +    echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then +  cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..e95643d --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off
 +@rem ##########################################################################
 +@rem
 +@rem  Gradle startup script for Windows
 +@rem
 +@rem ##########################################################################
 +
 +@rem Set local scope for the variables with windows NT shell
 +if "%OS%"=="Windows_NT" setlocal
 +
 +set DIRNAME=%~dp0
 +if "%DIRNAME%" == "" set DIRNAME=.
 +set APP_BASE_NAME=%~n0
 +set APP_HOME=%DIRNAME%
 +
 +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 +set DEFAULT_JVM_OPTS=
 +
 +@rem Find java.exe
 +if defined JAVA_HOME goto findJavaFromJavaHome
 +
 +set JAVA_EXE=java.exe
 +%JAVA_EXE% -version >NUL 2>&1
 +if "%ERRORLEVEL%" == "0" goto init
 +
 +echo.
 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 +echo.
 +echo Please set the JAVA_HOME variable in your environment to match the
 +echo location of your Java installation.
 +
 +goto fail
 +
 +:findJavaFromJavaHome
 +set JAVA_HOME=%JAVA_HOME:"=%
 +set JAVA_EXE=%JAVA_HOME%/bin/java.exe
 +
 +if exist "%JAVA_EXE%" goto init
 +
 +echo.
 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
 +echo.
 +echo Please set the JAVA_HOME variable in your environment to match the
 +echo location of your Java installation.
 +
 +goto fail
 +
 +:init
 +@rem Get command-line arguments, handling Windows variants
 +
 +if not "%OS%" == "Windows_NT" goto win9xME_args
 +
 +:win9xME_args
 +@rem Slurp the command line arguments.
 +set CMD_LINE_ARGS=
 +set _SKIP=2
 +
 +:win9xME_args_slurp
 +if "x%~1" == "x" goto execute
 +
 +set CMD_LINE_ARGS=%*
 +
 +:execute
 +@rem Setup the command line
 +
 +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 +
 +@rem Execute Gradle
 +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
 +
 +:end
 +@rem End local scope for the variables with windows NT shell
 +if "%ERRORLEVEL%"=="0" goto mainEnd
 +
 +:fail
 +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 +rem the _cmd.exe /c_ return code!
 +if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
 +exit /b 1
 +
 +:mainEnd
 +if "%OS%"=="Windows_NT" endlocal
 +
 +:omega
 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..ce8f912 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +include ':app' +rootProject.name = "Aniki"
\ No newline at end of file | 
