From 3c91dc3946fc67b230a60bc85196a29c49dd2425 Mon Sep 17 00:00:00 2001 From: archer-zhu <2878922632@qq.com> Date: Tue, 28 Mar 2023 14:47:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E4=BA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 15 ++ .idea/.gitignore | 3 + .idea/compiler.xml | 6 + .idea/deploymentTargetDropDown.xml | 17 ++ .idea/gradle.xml | 19 ++ .idea/misc.xml | 10 + app/.gitignore | 1 + app/build.gradle | 40 +++ app/proguard-rules.pro | 21 ++ .../logining/ExampleInstrumentedTest.java | 26 ++ app/src/main/AndroidManifest.xml | 32 +++ .../java/com/demo/logining/MainActivity.java | 52 ++++ .../com/demo/logining/MyInfor1Activity.java | 39 +++ .../com/demo/logining/Register1Activity.java | 126 +++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 +++ .../main/res/drawable/baseline_article_24.xml | 5 + .../drawable/baseline_chevron_right_24.xml | 5 + .../res/drawable/baseline_credit_score_24.xml | 5 + .../res/drawable/baseline_emoji_people_24.xml | 6 + .../res/drawable/baseline_expand_more_24.xml | 5 + .../main/res/drawable/baseline_lock_24.xml | 5 + .../res/drawable/baseline_pin_drop_24.xml | 5 + .../res/drawable/baseline_settings_24.xml | 5 + app/src/main/res/drawable/baseline_wc_24.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++ app/src/main/res/drawable/orange.png | Bin 0 -> 14660 bytes app/src/main/res/layout/activity_main.xml | 120 +++++++++ app/src/main/res/layout/my_infor.xml | 244 ++++++++++++++++++ app/src/main/res/layout/register.xml | 203 +++++++++++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 16 ++ app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 16 ++ app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 ++ .../com/demo/logining/ExampleUnitTest.java | 17 ++ build.gradle | 5 + gradle.properties | 21 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 +++++++++++++ gradlew.bat | 89 +++++++ settings.gradle | 17 ++ 56 files changed, 1653 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetDropDown.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/demo/logining/MainActivity.java create mode 100644 app/src/main/java/com/demo/logining/MyInfor1Activity.java create mode 100644 app/src/main/java/com/demo/logining/Register1Activity.java create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/baseline_article_24.xml create mode 100644 app/src/main/res/drawable/baseline_chevron_right_24.xml create mode 100644 app/src/main/res/drawable/baseline_credit_score_24.xml create mode 100644 app/src/main/res/drawable/baseline_emoji_people_24.xml create mode 100644 app/src/main/res/drawable/baseline_expand_more_24.xml create mode 100644 app/src/main/res/drawable/baseline_lock_24.xml create mode 100644 app/src/main/res/drawable/baseline_pin_drop_24.xml create mode 100644 app/src/main/res/drawable/baseline_settings_24.xml create mode 100644 app/src/main/res/drawable/baseline_wc_24.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/orange.png create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/my_infor.xml create mode 100644 app/src/main/res/layout/register.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/demo/logining/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.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 +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..fc02e20 --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..bdd9278 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file 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..4095e20 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.demo.logining' + compileSdk 33 + + defaultConfig { + applicationId "com.demo.logining" + minSdk 28 + targetSdk 33 + 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 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'com.github.crazyandcoder:citypicker:6.0.2' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.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/com/demo/logining/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java new file mode 100644 index 0000000..5ed6177 --- /dev/null +++ b/app/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.demo.logining; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.demo.logining", appContext.getPackageName()); + } +} \ 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..69c8f5c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/MainActivity.java b/app/src/main/java/com/demo/logining/MainActivity.java new file mode 100644 index 0000000..d305cb9 --- /dev/null +++ b/app/src/main/java/com/demo/logining/MainActivity.java @@ -0,0 +1,52 @@ +package com.demo.logining; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + EditText Accm = findViewById(R.id.accM); + EditText Pswm = findViewById(R.id.pasM); + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Button button1 = findViewById(R.id.button1); + button1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(!Register1Activity.isRegister) + Toast.makeText(MainActivity.this,"账号不存在,请先注册",Toast.LENGTH_LONG).show(); + else { + Toast.makeText(MainActivity.this, "登录成功!!!", Toast.LENGTH_LONG).show(); + Intent i = new Intent(MainActivity.this, MyInfor1Activity.class); + startActivity(i); + } + } + }); + +// if(Register1Activity.isRegister){ +// Intent intent=this.getIntent(); +// Bundle bundle=intent.getExtras(); +// String acc = bundle.getString("acc"); +// String psw = bundle.getString("password"); +// Accm.setText(acc); +// Pswm.setText(psw); +// } + + Button button2 = findViewById(R.id.button2); + button2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i =new Intent(MainActivity.this,Register1Activity.class); + startActivity(i); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/MyInfor1Activity.java b/app/src/main/java/com/demo/logining/MyInfor1Activity.java new file mode 100644 index 0000000..96f2daa --- /dev/null +++ b/app/src/main/java/com/demo/logining/MyInfor1Activity.java @@ -0,0 +1,39 @@ +package com.demo.logining; + +import androidx.appcompat.app.AppCompatActivity; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +public class MyInfor1Activity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.my_infor); + Button rt = findViewById(R.id.rt); + Intent intent=this.getIntent(); + Bundle bundle=intent.getExtras(); + String acc = bundle.getString("acc"); + String psw = bundle.getString("password"); + String city=bundle.getString("city"); + String sex=bundle.getString("sex"); + TextView Sex=(TextView) findViewById(R.id.showSex); + TextView Acc = findViewById(R.id.i_account); + Acc.setText("用户名:" + acc); + Sex.setText("性别:"+sex); + @SuppressLint({"MissingInflatedId", "LocalSuppress"}) TextView City=(TextView) findViewById(R.id.showCity); + City.setText("城市:"+city); + rt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MyInfor1Activity.this, MainActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/Register1Activity.java b/app/src/main/java/com/demo/logining/Register1Activity.java new file mode 100644 index 0000000..fd4f1de --- /dev/null +++ b/app/src/main/java/com/demo/logining/Register1Activity.java @@ -0,0 +1,126 @@ +package com.demo.logining; + +import androidx.annotation.IdRes; +import androidx.appcompat.app.AppCompatActivity; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.RadioGroup; +import android.widget.TextView; +import android.widget.Toast; + +import com.lljjcoder.style.citythreelist.CityBean; +import com.lljjcoder.style.citylist.utils.CityListLoader; +import com.lljjcoder.style.citythreelist.ProvinceActivity; + +import java.util.Objects; + +public class Register1Activity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, + View.OnClickListener +{ + private String acc="null"; + private String password=""; + private String rps =""; + private String sex = "男"; + private String cityname="null"; + + static public boolean isRegister = false; + + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.register); + //初始化组件 + EditText Acc = findViewById(R.id.account); + EditText Psw = findViewById(R.id.password); + EditText Rps = findViewById(R.id.re_password); + RadioGroup sex_group = findViewById(R.id.sex_group); + Button r_button = findViewById(R.id.r_button); + //添加监听事件 + sex_group.setOnCheckedChangeListener(this); + r_button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + isRegister = true; + acc=Acc.getText().toString(); + password=Psw.getText().toString(); + rps = Rps.getText().toString(); + switch (view.getId()) { + case R.id.r_button: + Bundle bundle=new Bundle(); + bundle.putString("acc",acc); + bundle.putString("password",password); + bundle.putString("rps", rps); + bundle.putString("sex",sex); + bundle.putString("city",cityname); + Intent intent = new Intent(Register1Activity.this, MyInfor1Activity.class); + intent.putExtras(bundle); + if(Objects.equals(password, rps)) { + Toast.makeText(Register1Activity.this, "注册成功!!!", Toast.LENGTH_LONG).show(); + startActivity(intent); + }else + Toast.makeText(Register1Activity.this, "两次密码不一致!", Toast.LENGTH_LONG).show(); + break; + } + } + }); + init(); + } + + public void init(){ + //城市选择器,预加载器 + CityListLoader.getInstance().loadProData(this); + //城市选择器的按钮监听事件 + TextView spinner1 = (TextView) findViewById(R.id.cityPick); + spinner1.setOnClickListener(v -> { + Intent intent1 = new Intent(this, ProvinceActivity.class); + startActivityForResult(intent1, ProvinceActivity.RESULT_DATA); + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == ProvinceActivity.RESULT_DATA) { + if (resultCode == RESULT_OK) { + if (data == null) { + return; + } + //省份结果 + CityBean province = data.getParcelableExtra("province"); + //城市结果 + CityBean city = data.getParcelableExtra("city"); + //区域结果 + CityBean area = data.getParcelableExtra("area"); + + //显示/ + String cityString = province.getName()+city.getName()+area.getName(); + cityname=cityString; + TextView ctPk = (TextView) findViewById(R.id.cityPick); + ctPk.setText(cityname); + //Toast.makeText(this, cityString, Toast.LENGTH_SHORT).show(); + } + } + } + + + @Override + public void onClick(View v) { + + } + //传输性别 + @Override + public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i){ + if(i==R.id.rb_man){ + sex="男"; + } + else { + sex="女"; + } + } +} \ 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 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_article_24.xml b/app/src/main/res/drawable/baseline_article_24.xml new file mode 100644 index 0000000..786ab9c --- /dev/null +++ b/app/src/main/res/drawable/baseline_article_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_chevron_right_24.xml b/app/src/main/res/drawable/baseline_chevron_right_24.xml new file mode 100644 index 0000000..a749bde --- /dev/null +++ b/app/src/main/res/drawable/baseline_chevron_right_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_credit_score_24.xml b/app/src/main/res/drawable/baseline_credit_score_24.xml new file mode 100644 index 0000000..41784a5 --- /dev/null +++ b/app/src/main/res/drawable/baseline_credit_score_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_emoji_people_24.xml b/app/src/main/res/drawable/baseline_emoji_people_24.xml new file mode 100644 index 0000000..906d71f --- /dev/null +++ b/app/src/main/res/drawable/baseline_emoji_people_24.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/drawable/baseline_expand_more_24.xml b/app/src/main/res/drawable/baseline_expand_more_24.xml new file mode 100644 index 0000000..48368f3 --- /dev/null +++ b/app/src/main/res/drawable/baseline_expand_more_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_lock_24.xml b/app/src/main/res/drawable/baseline_lock_24.xml new file mode 100644 index 0000000..36cc0ed --- /dev/null +++ b/app/src/main/res/drawable/baseline_lock_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_pin_drop_24.xml b/app/src/main/res/drawable/baseline_pin_drop_24.xml new file mode 100644 index 0000000..6e55893 --- /dev/null +++ b/app/src/main/res/drawable/baseline_pin_drop_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_settings_24.xml b/app/src/main/res/drawable/baseline_settings_24.xml new file mode 100644 index 0000000..298a5a1 --- /dev/null +++ b/app/src/main/res/drawable/baseline_settings_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_wc_24.xml b/app/src/main/res/drawable/baseline_wc_24.xml new file mode 100644 index 0000000..6506bb5 --- /dev/null +++ b/app/src/main/res/drawable/baseline_wc_24.xml @@ -0,0 +1,5 @@ + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/orange.png b/app/src/main/res/drawable/orange.png new file mode 100644 index 0000000000000000000000000000000000000000..d0d1c70d1e64b34fd79284edb95352f3742c3471 GIT binary patch literal 14660 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 literal 0 HcmV?d00001 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..d10d564 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +