diff --git a/orangesale2/.gitignore b/orangesale2/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/orangesale2/.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/orangesale2/.idea/.gitignore b/orangesale2/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/orangesale2/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/orangesale2/.idea/.name b/orangesale2/.idea/.name
new file mode 100644
index 0000000..864338d
--- /dev/null
+++ b/orangesale2/.idea/.name
@@ -0,0 +1 @@
+OrangeSale
\ No newline at end of file
diff --git a/orangesale2/.idea/compiler.xml b/orangesale2/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/orangesale2/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/.idea/gradle.xml b/orangesale2/.idea/gradle.xml
new file mode 100644
index 0000000..6e5389e
--- /dev/null
+++ b/orangesale2/.idea/gradle.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/.idea/misc.xml b/orangesale2/.idea/misc.xml
new file mode 100644
index 0000000..523e3dd
--- /dev/null
+++ b/orangesale2/.idea/misc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/.idea/vcs.xml b/orangesale2/.idea/vcs.xml
new file mode 100644
index 0000000..5389195
--- /dev/null
+++ b/orangesale2/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/LICENSE b/orangesale2/LICENSE
new file mode 100644
index 0000000..383e7b9
--- /dev/null
+++ b/orangesale2/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 1995-1999 The Apache Group. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/)."
+
+4. The names "Apache" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org.
+
+5. Products derived from this software may not be called "Apache" nor may "Apache" appear in their name, without prior written permission of the Apache Group.
+
+6. Redistributions of any form whatsoever must retain the following acknowledgment:
+"This product includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/)."
+
+THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals on behalf of the Apache Group and was originally based on public domain software written at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. For more information on the Apache Group and the Apache HTTP server project, please see .
diff --git a/orangesale2/app/.gitignore b/orangesale2/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/orangesale2/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/orangesale2/app/build.gradle b/orangesale2/app/build.gradle
new file mode 100644
index 0000000..2e84583
--- /dev/null
+++ b/orangesale2/app/build.gradle
@@ -0,0 +1,43 @@
+plugins {
+ id 'com.android.application'
+}
+
+
+android {
+ namespace 'com.example.orangesale'
+ compileSdk 33
+
+
+ defaultConfig {
+ applicationId "com.example.orangesale"
+ minSdk 24
+ 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'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+ implementation 'liji.library.dev:citypickerview:1.1.0'
+}
+
diff --git a/orangesale2/app/proguard-rules.pro b/orangesale2/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/orangesale2/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/orangesale2/app/src/androidTest/java/com/example/orangesale/ExampleInstrumentedTest.java b/orangesale2/app/src/androidTest/java/com/example/orangesale/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..e429a11
--- /dev/null
+++ b/orangesale2/app/src/androidTest/java/com/example/orangesale/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.orangesale;
+
+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.example.orangesale", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/orangesale2/app/src/main/AndroidManifest.xml b/orangesale2/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..52d8b45
--- /dev/null
+++ b/orangesale2/app/src/main/AndroidManifest.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/java/CityPicker/OnCityItemClickListener.java b/orangesale2/app/src/main/java/CityPicker/OnCityItemClickListener.java
new file mode 100644
index 0000000..6a15380
--- /dev/null
+++ b/orangesale2/app/src/main/java/CityPicker/OnCityItemClickListener.java
@@ -0,0 +1,7 @@
+package CityPicker;
+
+public interface OnCityItemClickListener {
+ void onSelected(String... strings);
+
+ void onCancel();
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/AppCompatActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/AppCompatActivity.java
new file mode 100644
index 0000000..514c1ad
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/AppCompatActivity.java
@@ -0,0 +1,7 @@
+package com.example.orangesale;
+
+import android.widget.RadioGroup;
+
+public interface AppCompatActivity {
+ void onCheckedChanged(RadioGroup group, int checkedId);
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity.java
new file mode 100644
index 0000000..8461178
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity.java
@@ -0,0 +1,113 @@
+package com.example.orangesale;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentTransaction;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class BuyActivity extends AppCompatActivity {
+ private FragmentManager fragmentManager;
+ private FragmentTransaction fragmentTransaction;
+ private Fragment leftFragment;
+ private RightFragment rightFragment;
+ private TextView tv_recommed,tv_must_buy;
+ private TextView btn;
+ private String[]names1={"爆款*肥牛鱼豆腐骨肉相连三荤五素一份米饭","豪华双人套餐","【热销】双人套餐(含两份米饭)","家乡菜爆炒花甲","家乡菜八仙过海","家乡菜迷魂汤","家乡菜小肉丸","家乡菜辣子鸡","家乡菜香辣龙虾"};
+ private String[]sales1={"月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%","月售520 好评度80%"};
+ private String[]prices1={"$23","$41","$32","$23","$41","$32","$23","$41","$32"};
+ private int []imgs1={R.drawable.recom_one,R.drawable.recom_two,R.drawable.recom_three,R.drawable.recom_four,R.drawable.recom_five,R.drawable.recom_six,R.drawable.recom_seven,R.drawable.recom_eight,R.drawable.recom_nine};
+
+
+ private String[]names2={"素菜主义一人套餐","两人经典套套餐","三人经典套餐"};
+ private String[]sales2={"月售520 好评度80%","月售520 好评度80%","月售520 好评度80%"};
+ private String[]prices2={"$23","$41","$32"};
+ private int []imgs2={R.drawable.must_buy_one,R.drawable.must_buy_two,R.drawable.must_buy_three};
+
+ private Map>map;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.buy_food);
+
+ setData();
+ init();
+ clickEvent();
+ }
+ private void init(){//给主页面左侧的fragment界面控件赋值
+
+ fragmentManager = getFragmentManager();
+
+ leftFragment=fragmentManager.findFragmentById(R.id.left);
+ tv_recommed=findViewById(R.id.tv_recommend);
+
+ tv_must_buy=findViewById(R.id.tv_must_buy);
+
+ }
+ private void setData(){//给数据赋值将其全部放在对应的数据集里
+ map=new HashMap<>();
+ Listlist1=new ArrayList<>();
+ Listlist2=new ArrayList<>();
+ for(int i=0;i list){
+
+ rightFragment=new RightFragment().getInstance(list);//实例fragment
+
+ fragmentManager=getFragmentManager();//获取FragmentManager
+
+ fragmentTransaction=getSupportFragmentManager().beginTransaction();//开启事务
+
+ fragmentTransaction.replace(R.id.right,rightFragment);//添加一个Fragment
+
+
+ fragmentTransaction.commit();//提交事务
+
+ }
+
+}
+
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity2.java b/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity2.java
new file mode 100644
index 0000000..6dd52c0
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/BuyActivity2.java
@@ -0,0 +1,88 @@
+package com.example.orangesale;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class BuyActivity2 extends AppCompatActivity implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {
+ private List> data;
+ private TextView btn;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.buy_food2);
+ btn=findViewById(R.id.tv_order);
+ btn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent=new Intent(BuyActivity2.this,BuyActivity.class);
+ startActivity(intent);
+ }
+ });
+ ListView listView = this.findViewById(R.id.list_main);
+
+ //准备数据源(List)
+ initData();
+
+ //创建自定义适配器
+ MyAdapter adapter = new MyAdapter(this);
+ adapter.setList(data);
+
+
+ listView.setAdapter(adapter);
+
+ listView.setOnItemClickListener(this);
+ listView.setOnItemLongClickListener(this);
+
+ }
+
+ private void initData() {
+ data = new ArrayList>();
+ Map map = new HashMap();
+ map.put("icon",R.drawable.cat);
+ map.put("title","元培小店");
+ map.put("content","一家位于元培学院的小吃店,善长做蛋糕,奶茶等甜点,深受广大师生的喜爱。");
+ data.add(map);
+
+ map = new HashMap();
+ map.put("icon",R.drawable.fawn);
+ map.put("title","古卉");
+ map.put("content","一家位于悦享城的小吃店,因为老板的漂亮可爱而深受众多男同学的光临。");
+ data.add(map);
+
+ map = new HashMap();
+ map.put("icon",R.drawable.tiger);
+ map.put("title","河南烩面");
+ map.put("content","一家位于绍兴却只做河南烩面的小吃店,色香味俱全,吸引了众多当地人的光临,尤其是在绍兴本地工作的河南朋友。");
+ data.add(map);
+
+ map = new HashMap();
+ map.put("icon",R.drawable.siberiankusky);
+ map.put("title","麻辣烫");
+ map.put("content","以众多荤菜和素材混合搭配制作,价格便宜,回味无穷。");
+ data.add(map);
+
+ }
+
+ @Override
+ public void onItemClick(AdapterView> adapterView, View view, int i, long l) {
+ Toast.makeText(this,"点击item"+i,Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public boolean onItemLongClick(AdapterView> adapterView, View view, int i, long l) {
+ Toast.makeText(this,"长按item"+i,Toast.LENGTH_SHORT).show();
+ return true;//事件流机制
+ }
+
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/ContentActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/ContentActivity.java
new file mode 100644
index 0000000..09398fa
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/ContentActivity.java
@@ -0,0 +1,70 @@
+package com.example.orangesale;
+
+import static com.example.orangesale.R.*;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+public class ContentActivity extends AppCompatActivity {
+
+ private ImageView userIconImage;
+ private TextView usernameText, userSexText, userCityText;
+ private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+
+
+ Button btn1,btn2;
+
+
+
+ super.onCreate(savedInstanceState);
+
+ setContentView(layout.content_user);
+
+ btn1 = (Button) findViewById(id.wipe);
+ btn2 = (Button) findViewById(R.id.look);
+
+ btn1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(ContentActivity.this, LoginActivity.class);
+ startActivity(intent);
+ }
+ });
+ btn2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(ContentActivity.this, BuyActivity.class);
+ startActivity(intent);
+ }
+ });
+ userIconImage = findViewById(id.user_icon);
+ usernameText = findViewById(id.user_username);
+ userSexText = findViewById(id.user_sex);
+ userCityText = findViewById(id.user_city);
+ usernameLine = findViewById(id.user_username_line);
+ userSexline = findViewById(id.user_sex_line);
+ userCityLine = findViewById(id.user_city_line);
+ userPayLine = findViewById(id.user_pay);
+ userSettingLine = findViewById(id.user_setting);
+ userGeneralLine = findViewById(id.user_general);
+
+ Intent intent = ContentActivity.this.getIntent();
+ Bundle bundle = intent.getExtras();
+ usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
+ userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
+ userCityText.setText(String.format("城市:%s", bundle.getString("city")));
+ }
+
+
+}
\ No newline at end of file
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/FoodBean.java b/orangesale2/app/src/main/java/com/example/orangesale/FoodBean.java
new file mode 100644
index 0000000..f65bc6e
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/FoodBean.java
@@ -0,0 +1,42 @@
+package com.example.orangesale;
+import java.io.Serializable;
+
+public class FoodBean implements Serializable {
+ private static final long serialVersionUID=1L;
+ private String name;
+ private String sales;
+ private String price;
+ private int img;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSales() {
+ return sales;
+ }
+
+ public void setSales(String sales) {
+ this.sales = sales;
+ }
+
+ public String getPrice() {
+ return price;
+ }
+
+ public void setPrice(String price) {
+ this.price = price;
+ }
+
+ public int getImg() {
+ return img;
+ }
+
+ public void setImg(int img) {
+ this.img = img;
+ }
+}
\ No newline at end of file
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/LeftFragment.java b/orangesale2/app/src/main/java/com/example/orangesale/LeftFragment.java
new file mode 100644
index 0000000..2dc0751
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/LeftFragment.java
@@ -0,0 +1,29 @@
+package com.example.orangesale;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.fragment.app.Fragment;
+
+public class LeftFragment extends Fragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+
+ View view= inflater.inflate(R.layout.fragment_left, container, false);
+ return view;
+ }
+ public void onPause(){
+
+ super.onPause();
+ }
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/LoginActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/LoginActivity.java
new file mode 100644
index 0000000..461d133
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/LoginActivity.java
@@ -0,0 +1,75 @@
+package com.example.orangesale;
+
+import android.content.Intent;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
+ private Button registerButton, loginButton;
+ private EditText usernameText, paswdEdit;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_login);
+ init();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.register:
+ Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
+ startActivity(intent);
+ break;
+ case R.id.login:
+ //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示
+ if (validateLogin()) {
+ Intent intent1 = new Intent(LoginActivity.this, ContentActivity.class);
+ Bundle bundle = new Bundle();
+ OrangeDatabase orangeDatabase = new OrangeDatabase(LoginActivity.this);
+ bundle.putString("username", usernameText.getText().toString());
+ bundle = orangeDatabase.queryUserInfo(orangeDatabase.getReadableDatabase(), bundle);
+ intent1.putExtras(bundle);
+ startActivity(intent1);
+ } else {
+ Toast.makeText(LoginActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
+ }
+ break;
+ }
+ }
+
+ //界面组件初始化
+ private void init() {
+ usernameText = findViewById(R.id.username);
+ paswdEdit = findViewById(R.id.password);
+ loginButton = findViewById(R.id.login);
+ loginButton.setOnClickListener(this);
+ registerButton = findViewById(R.id.register);
+ registerButton.setOnClickListener(this);
+ }
+
+ /**
+ * 登录验证
+ *
+ * @return
+ */
+ private boolean validateLogin() {
+ String username = usernameText.getText().toString();
+ String password = paswdEdit.getText().toString();
+ OrangeDatabase orangeDatabase = new OrangeDatabase(LoginActivity.this);
+ SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase();
+ Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=? and password=?", new String[]{username, password});
+ if (cursor.getCount() > 0) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/MainActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/MainActivity.java
new file mode 100644
index 0000000..72504c6
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/MainActivity.java
@@ -0,0 +1,14 @@
+package com.example.orangesale;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+public class MainActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ }
+}
\ No newline at end of file
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/MyAdapter.java b/orangesale2/app/src/main/java/com/example/orangesale/MyAdapter.java
new file mode 100644
index 0000000..6ab110d
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/MyAdapter.java
@@ -0,0 +1,74 @@
+package com.example.orangesale;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.List;
+import java.util.Map;
+
+public class MyAdapter extends BaseAdapter {
+ private List> list;
+ private LayoutInflater inflater;//反射器
+
+ public MyAdapter(Context context) {
+ this.inflater = LayoutInflater.from(context);
+ }
+
+ public void setList(List> list) {
+ this.list = list;
+ }
+
+ @Override
+ public int getCount() {
+ return list.size();
+ }
+
+ @Override
+ public Object getItem(int i) {
+ return list.get(i);
+ }
+
+ @Override
+ public long getItemId(int i) {
+ return i;
+ }
+
+ @Override
+ public View getView(int i, View view, ViewGroup viewGroup) {
+ // View view1 = inflater.inflate(R.layout.layout_item,null);
+ ViewHolder holder = null;
+
+ if(view == null){
+ view = inflater.inflate(R.layout.layout_item,null);
+ holder = new ViewHolder();
+ holder.icon = view.findViewById(R.id.icon);
+ holder.title = view.findViewById(R.id.title);
+ holder.content = view.findViewById(R.id.content);
+ view.setTag(holder);
+ }else {
+ holder = (ViewHolder) view.getTag();
+ }
+
+ //获得行布局的各个控件
+ // ImageView icon = view.findViewById(R.id.icon);
+ // TextView title = view.findViewById(R.id.title);
+ // TextView content = view.findViewById(R.id.content);
+
+ //给各个控件赋值
+ holder.icon.setImageResource((Integer) list.get(i).get("icon"));
+ holder.title.setText((String) list.get(i).get("title"));
+ holder.content.setText((String) list.get(i).get("content"));
+
+ return view;
+ }
+
+ public class ViewHolder{
+ ImageView icon;
+ TextView title;
+ TextView content;
+ }
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/OrangeDatabase.java b/orangesale2/app/src/main/java/com/example/orangesale/OrangeDatabase.java
new file mode 100644
index 0000000..746744e
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/OrangeDatabase.java
@@ -0,0 +1,54 @@
+package com.example.orangesale;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+
+public class OrangeDatabase extends SQLiteOpenHelper {
+ public OrangeDatabase(@Nullable Context context) {
+ super(context, "orange", null, 1);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ //创建用户表
+ String sql = "create table orange_user(id integer primary key autoincrement, username varchar(50), password varchar(50),sex varchar(10),city carchar(50))";
+ db.execSQL(sql);
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+
+ }
+
+//插入数据
+ public void insertUser(SQLiteDatabase sqLiteDatabase, String username, String password, String sex, String city) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("username", username);
+ contentValues.put("password", password);
+ contentValues.put("sex", sex);
+ contentValues.put("city", city);
+ sqLiteDatabase.insert("orange_user", null, contentValues);
+ sqLiteDatabase.close();
+ }
+
+ //查询数据
+ public Bundle queryUserInfo(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
+ String username = bundle.getString("username");
+ Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=?", new String[]{username});
+ if (cursor != null) {
+ while (cursor.moveToNext()) {
+ bundle.putString("sex", cursor.getString(3));
+ bundle.putString("city", cursor.getString(4));
+ }
+ }
+ cursor.close();
+ sqLiteDatabase.close();
+ return bundle;
+ }
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/OrangeUser.java b/orangesale2/app/src/main/java/com/example/orangesale/OrangeUser.java
new file mode 100644
index 0000000..e914251
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/OrangeUser.java
@@ -0,0 +1,59 @@
+package com.example.orangesale;
+
+public class OrangeUser {
+ private Integer id;
+ private String username;
+ private String password;
+ private String sex;
+ private String city;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getSex() {
+ return sex;
+ }
+
+ public void setSex(String sex) {
+ this.sex = sex;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ @Override
+ public String toString() {
+ return "OrangeUser{" +
+ "username='" + username + '\'' +
+ ", password='" + password + '\'' +
+ ", sex='" + sex + '\'' +
+ ", city='" + city + '\'' +
+ '}';
+ }
+}
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/RegisterActivity.java b/orangesale2/app/src/main/java/com/example/orangesale/RegisterActivity.java
new file mode 100644
index 0000000..80b892b
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/RegisterActivity.java
@@ -0,0 +1,162 @@
+package com.example.orangesale;
+
+import android.content.ContentValues;
+import android.content.Intent;
+import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Color;
+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 androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.lljjcoder.citypickerview.widget.CityPicker;
+
+
+public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, com.example.orangesale.AppCompatActivity, RadioGroup.OnCheckedChangeListener {
+
+ private EditText usernameEdit, passwordEdit, surePasswordEdit;
+ private CityPicker cityPicker;
+ private TextView cityText;
+ private RadioGroup sexGroup;
+ private String sexstr;//默认值为男
+ private Button regButton;
+
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_register);
+ Button register = findViewById(R.id.reg_register);
+ register.setOnClickListener(this);
+ init();
+
+ }
+
+ private void init() {
+ cityText = findViewById(R.id.reg_province);
+ cityText.setOnClickListener(this);
+ usernameEdit = findViewById(R.id.reg_username);
+ passwordEdit = findViewById(R.id.reg_psw);
+ surePasswordEdit = findViewById(R.id.reg_sure_psw);
+ regButton = findViewById(R.id.reg_register);
+ regButton.setOnClickListener(this);
+ sexGroup = findViewById(R.id.sex);
+ sexGroup.setOnCheckedChangeListener(this);
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.reg_province:
+ initCityPicker();
+ cityPicker.show();
+ break;
+ case R.id.reg_register:
+ validateRegister();
+ break;
+ }
+// Intent intent = new Intent(this, LoginActivity.class);
+// startActivity(intent);
+
+ }
+
+ private void validateRegister() {
+ Intent intent = new Intent(RegisterActivity.this, ContentActivity.class);
+ String username = usernameEdit.getText().toString();
+ String password = passwordEdit.getText().toString();
+ String surePassword = surePasswordEdit.getText().toString();
+ String city = cityText.getText().toString();
+ //两次密码对照确认
+ if (password.equals(surePassword)){
+ if (password.equals("") || !password.equals("")) {
+ if (!city.equals("")) {
+ Bundle bundle = new Bundle();
+ bundle.putString("username", username);
+ bundle.putString("password", password);
+ bundle.putString("sex", sexstr);
+ bundle.putString("city", city);
+ OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this);
+ SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase();
+ insertData(sqLiteDatabase,bundle);
+ intent.putExtras(bundle);
+ startActivity(intent);
+ }
+ else {
+ Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_LONG).show();
+ }
+ }
+ else {
+ Toast.makeText(RegisterActivity.this, "账号或者密码未填写", Toast.LENGTH_LONG).show();
+ }
+
+ }
+ else{
+ Toast.makeText(RegisterActivity.this,"两次密码输入不一致",Toast.LENGTH_LONG).show();
+ }
+ }
+
+ private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("username",bundle.getString("username"));
+ contentValues.put("password",bundle.getString("password"));
+ contentValues.put("sex",bundle.getString("sex"));
+ contentValues.put("city",bundle.getString("city"));
+ sqLiteDatabase.insert("orange_user",null,contentValues);
+ sqLiteDatabase.close();
+ }
+
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId){
+ sexstr = checkedId==R.id.reg_man?"男":"女";
+ }
+
+ public void initCityPicker() {
+ cityPicker = new CityPicker.Builder(RegisterActivity.this)
+ .textSize(16)
+ .title("地址选择")
+ .backgroundPop(0xa0000000)
+ .titleBackgroundColor("#EFB81C")
+ .titleTextColor("#000000")
+ .backgroundPop(0xa0000000)
+ .confirTextColor("#000000")
+ .cancelTextColor("#000000")
+ .province("江西省")
+ .city("赣州市")
+ .district("章贡区")
+ .textColor(Color.parseColor("#000000"))
+ .provinceCyclic(true)
+ .cityCyclic(false)
+ .districtCyclic(false)
+ .visibleItemsCount(7)
+ .itemPadding(10)
+ .onlyShowProvinceAndCity(false)
+ .build();
+ cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
+ @Override
+ public void onSelected(String... strings) {
+ String province = strings[0];
+ String city = strings[1];
+ String district = strings[2];
+ cityText.setText(String.format("%s %s %s", province, city, district));
+ }
+ @Override
+ public void onCancel() {
+ }
+ });
+
+ }
+
+ @Override
+ public void onPointerCaptureChanged(boolean hasCapture) {
+ super.onPointerCaptureChanged(hasCapture);
+ }
+}
+
+
+
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/RightAdapter.java b/orangesale2/app/src/main/java/com/example/orangesale/RightAdapter.java
new file mode 100644
index 0000000..8190295
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/RightAdapter.java
@@ -0,0 +1,59 @@
+package com.example.orangesale;
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+
+import java.util.List;
+
+public class RightAdapter extends BaseAdapter {
+ private Context mContext;
+ private Listlist;
+ public RightAdapter(Context context , Listlist){
+ this.mContext=context;
+ this.list=list;
+ }
+ @Override
+ public int getCount() {
+ return list.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return list.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder holder=null;
+ if(convertView==null){
+ convertView=View.inflate(mContext,R.layout.list_item,null);
+ holder= new ViewHolder();
+ holder.tv_name=convertView.findViewById(R.id.tv_name);
+ holder.tv_sale=convertView.findViewById(R.id.tv_sale);
+ holder.tv_price=convertView.findViewById(R.id.tv_price);
+ holder.iv_img=convertView.findViewById(R.id.iv_img);
+ convertView.setTag(holder);
+ }else {
+ holder=(ViewHolder) convertView.getTag();
+ }
+ FoodBean bean=list.get(position);
+ holder.tv_name.setText(bean.getName());
+ holder.tv_sale.setText(bean.getSales());
+ holder.tv_price.setText(bean.getPrice());
+ holder.iv_img.setBackgroundResource(bean.getImg());
+ return convertView;
+ }
+ class ViewHolder{
+ TextView tv_name,tv_sale,tv_price;
+ ImageView iv_img;
+ }
+}
\ No newline at end of file
diff --git a/orangesale2/app/src/main/java/com/example/orangesale/RightFragment.java b/orangesale2/app/src/main/java/com/example/orangesale/RightFragment.java
new file mode 100644
index 0000000..191f2ab
--- /dev/null
+++ b/orangesale2/app/src/main/java/com/example/orangesale/RightFragment.java
@@ -0,0 +1,60 @@
+package com.example.orangesale;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+public class RightFragment extends Fragment {
+
+ private ListView lv_list;
+ /* public RightFragment(FragmentActivity activity, List list) {
+ // Required empty public constructor
+ }*/
+
+ public RightFragment() {
+
+ }
+
+ public RightFragment getInstance(Listlist){
+ RightFragment rightFragment=new RightFragment();
+
+
+ Bundle bundle=new Bundle();
+ bundle.putSerializable("list",(Serializable) list);
+ rightFragment.setArguments(bundle);
+ return rightFragment;
+ }
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view=inflater.inflate(R.layout.fragment_right, container, false);
+
+ lv_list=view.findViewById(R.id.lv_list);
+ if(getArguments()!=null){
+
+ Listlist=(List) getArguments().getSerializable("list");
+ RightAdapter adapter=new RightAdapter(getActivity(),list);
+ lv_list.setAdapter( adapter);
+
+ }
+ return view;
+ }
+
+
+
+
+}
diff --git a/orangesale2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/orangesale2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/orangesale2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/drawable/address.png b/orangesale2/app/src/main/res/drawable/address.png
new file mode 100644
index 0000000..7318be0
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/address.png differ
diff --git a/orangesale2/app/src/main/res/drawable/arrow_down.png b/orangesale2/app/src/main/res/drawable/arrow_down.png
new file mode 100644
index 0000000..6d95bb5
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/arrow_down.png differ
diff --git a/orangesale2/app/src/main/res/drawable/arrow_right.png b/orangesale2/app/src/main/res/drawable/arrow_right.png
new file mode 100644
index 0000000..84ded85
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/arrow_right.png differ
diff --git a/orangesale2/app/src/main/res/drawable/button_login.xml b/orangesale2/app/src/main/res/drawable/button_login.xml
new file mode 100644
index 0000000..b491f75
--- /dev/null
+++ b/orangesale2/app/src/main/res/drawable/button_login.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/drawable/cat.jpg b/orangesale2/app/src/main/res/drawable/cat.jpg
new file mode 100644
index 0000000..376d356
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/cat.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/city.png b/orangesale2/app/src/main/res/drawable/city.png
new file mode 100644
index 0000000..790fb2b
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/city.png differ
diff --git a/orangesale2/app/src/main/res/drawable/fawn.jpg b/orangesale2/app/src/main/res/drawable/fawn.jpg
new file mode 100644
index 0000000..38d17b9
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/fawn.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/friend_list.png b/orangesale2/app/src/main/res/drawable/friend_list.png
new file mode 100644
index 0000000..4c1a3c3
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/friend_list.png differ
diff --git a/orangesale2/app/src/main/res/drawable/ic_launcher_background.xml b/orangesale2/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..dd3a686
--- /dev/null
+++ b/orangesale2/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/orangesale2/app/src/main/res/drawable/jp1.png b/orangesale2/app/src/main/res/drawable/jp1.png
new file mode 100644
index 0000000..0aef831
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/jp1.png differ
diff --git a/orangesale2/app/src/main/res/drawable/jp2.png b/orangesale2/app/src/main/res/drawable/jp2.png
new file mode 100644
index 0000000..0b890b5
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/jp2.png differ
diff --git a/orangesale2/app/src/main/res/drawable/jp3.jpg b/orangesale2/app/src/main/res/drawable/jp3.jpg
new file mode 100644
index 0000000..6478863
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/jp3.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/must_buy_one.png b/orangesale2/app/src/main/res/drawable/must_buy_one.png
new file mode 100644
index 0000000..386c607
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/must_buy_one.png differ
diff --git a/orangesale2/app/src/main/res/drawable/must_buy_three.png b/orangesale2/app/src/main/res/drawable/must_buy_three.png
new file mode 100644
index 0000000..8efc512
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/must_buy_three.png differ
diff --git a/orangesale2/app/src/main/res/drawable/must_buy_two.png b/orangesale2/app/src/main/res/drawable/must_buy_two.png
new file mode 100644
index 0000000..9bd17a0
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/must_buy_two.png differ
diff --git a/orangesale2/app/src/main/res/drawable/orange.png b/orangesale2/app/src/main/res/drawable/orange.png
new file mode 100644
index 0000000..70e8db8
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/orange.png differ
diff --git a/orangesale2/app/src/main/res/drawable/orange1.png b/orangesale2/app/src/main/res/drawable/orange1.png
new file mode 100644
index 0000000..1de4d2e
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/orange1.png differ
diff --git a/orangesale2/app/src/main/res/drawable/password.png b/orangesale2/app/src/main/res/drawable/password.png
new file mode 100644
index 0000000..1c6c4f5
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/password.png differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_eight.jpg b/orangesale2/app/src/main/res/drawable/recom_eight.jpg
new file mode 100644
index 0000000..fe7eeca
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_eight.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_five.jpg b/orangesale2/app/src/main/res/drawable/recom_five.jpg
new file mode 100644
index 0000000..b2c258c
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_five.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_four.jpg b/orangesale2/app/src/main/res/drawable/recom_four.jpg
new file mode 100644
index 0000000..56f28ba
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_four.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_nine.jpg b/orangesale2/app/src/main/res/drawable/recom_nine.jpg
new file mode 100644
index 0000000..30ade41
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_nine.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_one.png b/orangesale2/app/src/main/res/drawable/recom_one.png
new file mode 100644
index 0000000..dd3a1e1
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_one.png differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_seven.jpg b/orangesale2/app/src/main/res/drawable/recom_seven.jpg
new file mode 100644
index 0000000..aea1fd4
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_seven.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_six.jpg b/orangesale2/app/src/main/res/drawable/recom_six.jpg
new file mode 100644
index 0000000..d4f2ae7
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_six.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_three.png b/orangesale2/app/src/main/res/drawable/recom_three.png
new file mode 100644
index 0000000..6d991fb
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_three.png differ
diff --git a/orangesale2/app/src/main/res/drawable/recom_two.png b/orangesale2/app/src/main/res/drawable/recom_two.png
new file mode 100644
index 0000000..7232991
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/recom_two.png differ
diff --git a/orangesale2/app/src/main/res/drawable/setting.png b/orangesale2/app/src/main/res/drawable/setting.png
new file mode 100644
index 0000000..34c2f2f
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/setting.png differ
diff --git a/orangesale2/app/src/main/res/drawable/sex.png b/orangesale2/app/src/main/res/drawable/sex.png
new file mode 100644
index 0000000..acb8197
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/sex.png differ
diff --git a/orangesale2/app/src/main/res/drawable/siberiankusky.jpg b/orangesale2/app/src/main/res/drawable/siberiankusky.jpg
new file mode 100644
index 0000000..8412b45
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/siberiankusky.jpg differ
diff --git a/orangesale2/app/src/main/res/drawable/sure_apssword.png b/orangesale2/app/src/main/res/drawable/sure_apssword.png
new file mode 100644
index 0000000..0e7cee9
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/sure_apssword.png differ
diff --git a/orangesale2/app/src/main/res/drawable/tiger.png b/orangesale2/app/src/main/res/drawable/tiger.png
new file mode 100644
index 0000000..78cddc4
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/tiger.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user.png b/orangesale2/app/src/main/res/drawable/user.png
new file mode 100644
index 0000000..47d8362
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user_account.png b/orangesale2/app/src/main/res/drawable/user_account.png
new file mode 100644
index 0000000..e70142a
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user_account.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user_general.png b/orangesale2/app/src/main/res/drawable/user_general.png
new file mode 100644
index 0000000..cf57947
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user_general.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user_icon.png b/orangesale2/app/src/main/res/drawable/user_icon.png
new file mode 100644
index 0000000..d5309b1
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user_icon.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user_pay.png b/orangesale2/app/src/main/res/drawable/user_pay.png
new file mode 100644
index 0000000..3fd6f50
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user_pay.png differ
diff --git a/orangesale2/app/src/main/res/drawable/user_sex.png b/orangesale2/app/src/main/res/drawable/user_sex.png
new file mode 100644
index 0000000..da0e318
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/user_sex.png differ
diff --git a/orangesale2/app/src/main/res/drawable/yellowduck.png b/orangesale2/app/src/main/res/drawable/yellowduck.png
new file mode 100644
index 0000000..4fdf376
Binary files /dev/null and b/orangesale2/app/src/main/res/drawable/yellowduck.png differ
diff --git a/orangesale2/app/src/main/res/layout/activity_main.xml b/orangesale2/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..ae20345
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/buy_food.xml b/orangesale2/app/src/main/res/layout/buy_food.xml
new file mode 100644
index 0000000..8f4eba7
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/buy_food.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/buy_food2.xml b/orangesale2/app/src/main/res/layout/buy_food2.xml
new file mode 100644
index 0000000..4d134db
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/buy_food2.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/content_user.xml b/orangesale2/app/src/main/res/layout/content_user.xml
new file mode 100644
index 0000000..a3804b4
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/content_user.xml
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/fragment_left.xml b/orangesale2/app/src/main/res/layout/fragment_left.xml
new file mode 100644
index 0000000..a8c7b60
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/fragment_left.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/fragment_right.xml b/orangesale2/app/src/main/res/layout/fragment_right.xml
new file mode 100644
index 0000000..092351e
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/fragment_right.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/layout_item.xml b/orangesale2/app/src/main/res/layout/layout_item.xml
new file mode 100644
index 0000000..903229e
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/layout_item.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/orangesale2/app/src/main/res/layout/list_item.xml b/orangesale2/app/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000..64fe5d8
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/list_item.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/user_login.xml b/orangesale2/app/src/main/res/layout/user_login.xml
new file mode 100644
index 0000000..d031dd1
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/user_login.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/layout/user_register.xml b/orangesale2/app/src/main/res/layout/user_register.xml
new file mode 100644
index 0000000..b27799b
--- /dev/null
+++ b/orangesale2/app/src/main/res/layout/user_register.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/orangesale2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml b/orangesale2/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/orangesale2/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/orangesale2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/orangesale2/app/src/main/res/values-night/themes.xml b/orangesale2/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..ec75017
--- /dev/null
+++ b/orangesale2/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/values/colors.xml b/orangesale2/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/orangesale2/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/values/strings.xml b/orangesale2/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..528f065
--- /dev/null
+++ b/orangesale2/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ OrangeSale
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/values/themes.xml b/orangesale2/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..e261855
--- /dev/null
+++ b/orangesale2/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/xml/backup_rules.xml b/orangesale2/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/orangesale2/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/main/res/xml/data_extraction_rules.xml b/orangesale2/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/orangesale2/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orangesale2/app/src/test/java/com/example/orangesale/ExampleUnitTest.java b/orangesale2/app/src/test/java/com/example/orangesale/ExampleUnitTest.java
new file mode 100644
index 0000000..8be6b4f
--- /dev/null
+++ b/orangesale2/app/src/test/java/com/example/orangesale/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.orangesale;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/orangesale2/build.gradle b/orangesale2/build.gradle
new file mode 100644
index 0000000..71640c7
--- /dev/null
+++ b/orangesale2/build.gradle
@@ -0,0 +1,8 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id 'com.android.application' version '7.1.2' apply false
+ id 'com.android.library' version '7.1.2' apply false
+
+}
+
+
diff --git a/orangesale2/gradle.properties b/orangesale2/gradle.properties
new file mode 100644
index 0000000..92b9117
--- /dev/null
+++ b/orangesale2/gradle.properties
@@ -0,0 +1,22 @@
+# 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
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
+android.enableJetifier=true
\ No newline at end of file
diff --git a/orangesale2/gradle/wrapper/gradle-wrapper.jar b/orangesale2/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/orangesale2/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/orangesale2/gradle/wrapper/gradle-wrapper.properties b/orangesale2/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..004283e
--- /dev/null
+++ b/orangesale2/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Mar 20 17:49:37 CST 2023
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/orangesale2/gradlew b/orangesale2/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/orangesale2/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## 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='"-Xmx64m" "-Xms64m"'
+
+# 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 or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
+
+exec "$JAVACMD" "$@"
diff --git a/orangesale2/gradlew.bat b/orangesale2/gradlew.bat
new file mode 100644
index 0000000..107acd3
--- /dev/null
+++ b/orangesale2/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@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 Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@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="-Xmx64m" "-Xms64m"
+
+@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 execute
+
+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 execute
+
+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
+
+: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 %*
+
+: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/orangesale2/settings.gradle b/orangesale2/settings.gradle
new file mode 100644
index 0000000..2c48b5c
--- /dev/null
+++ b/orangesale2/settings.gradle
@@ -0,0 +1,23 @@
+pluginManagement {
+ repositories {
+ maven {url 'https://maven.aliyun.com/repository/public/'}
+ maven {url 'https://maven.aliyun.com/repository/google/'}
+ maven {url 'https://maven.aliyun.com/repository/jcenter'}
+ jcenter()
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ jcenter()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "OrangeSale"
+include ':app'