From a7cbdfa92ece2897d02de04509535e991b3708d4 Mon Sep 17 00:00:00 2001 From: molskqv38 <748067453@qq.com> Date: Sat, 25 Jun 2022 19:26:05 +0800 Subject: [PATCH] ADD file via upload --- MainActivity.java | 262 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 MainActivity.java diff --git a/MainActivity.java b/MainActivity.java new file mode 100644 index 0000000..5372d35 --- /dev/null +++ b/MainActivity.java @@ -0,0 +1,262 @@ +package com.example.share2; + + +import androidx.appcompat.app.AppCompatActivity; + +import android.annotation.SuppressLint; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.graphics.Typeface; +import android.os.Bundle; + +import android.text.InputType; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.share2.fragment.HomePageActivity; +import com.example.share2.fragment.photo.GetPhotosList; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.HashMap; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.Headers; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class MainActivity extends AppCompatActivity implements View.OnClickListener { + + private static final String ACTION_REGISTER_START ="REGISTER" ; + private EditText etPwd; + private EditText etAccount; + private TextView etSignUp; + private CheckBox cbRemeberPwd; + private ResponseBody responseBody; + private Boolean bPwdSwitch = false; + SharedPreferences sp; + + //启动某个界面的广播,这里应该是作为登录的广播,临时测试一下 + public class StartReceiver extends BroadcastReceiver{ + @Override + public void onReceive(Context context, Intent intent) { + //测试用的为了不发起登录请求 + Intent intentRegister = new Intent(MainActivity.this, HomePageActivity.class); + startActivity(intentRegister); + //测试用的为了不发起登录请求 + if (responseBody != null){ + if(responseBody.getCode() == 200){ + intentRegister = new Intent(MainActivity.this, HomePageActivity.class); + startActivity(intentRegister); + Log.d("ssssssss","xxxxxxxxx"); + } + else { + Toast.makeText(MainActivity.this,responseBody.getMsg(),Toast.LENGTH_SHORT).show(); + } + + } + else { + Toast.makeText(MainActivity.this,"ssssssssss服务器错误!",Toast.LENGTH_SHORT).show(); + } + } + } + + @SuppressLint("WrongViewCast") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + this.getSupportActionBar().hide(); + /*定义广播*/ + getResources(); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ACTION_REGISTER_START); + registerReceiver(new StartReceiver(), intentFilter); + sp=getSharedPreferences("config", Context.MODE_PRIVATE); + + /*注册按钮*/ + etSignUp = findViewById(R.id.tv_sign_up); + etSignUp.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intentRegister = new Intent(MainActivity.this, RegisterActivity.class); + startActivity(intentRegister); + } + }); + + + /*密码切换明文密文*/ + final ImageView ivPwdSwitch = findViewById(R.id.iv_pwd_switch); + ivPwdSwitch.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + bPwdSwitch = !bPwdSwitch; + if (bPwdSwitch) { + ivPwdSwitch.setImageResource( + R.drawable.ic_baseline_visibility_24); + etPwd.setInputType( + InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); + } else { + ivPwdSwitch.setImageResource( + R.drawable.ic_baseline_visibility_off_24); + etPwd.setInputType( + InputType.TYPE_TEXT_VARIATION_PASSWORD | + InputType.TYPE_CLASS_TEXT); + etPwd.setTypeface(Typeface.DEFAULT); + } + } + }); + + + + + /*登录按钮*/ + etPwd = findViewById(R.id.et_pwd); + etAccount = findViewById(R.id.et_account); + cbRemeberPwd = findViewById(R.id.cb_remember_pwd); + Button btLogin = findViewById(R.id.bt_login); + btLogin.setOnClickListener(this); + + /*记住密码*/ + String spFileName = getResources().getString(R.string.share_preferences_file); + String accountKey = getResources().getString(R.string.login_account_name); + String passwordKey = getResources().getString(R.string.login_password); + String remeberPasswordKey = getResources().getString(R.string.login_remeber_password); + + SharedPreferences spFile = getSharedPreferences(spFileName, Context.MODE_PRIVATE); + + String account = spFile.getString(accountKey, null); + String password = spFile.getString(passwordKey, null); + Boolean remeberPassword = spFile.getBoolean(remeberPasswordKey,false); + if(account != null && !TextUtils.isEmpty(account)){ + etAccount.setText(account); + } + if(password != null && !TextUtils.isEmpty(password)){ + etPwd.setText(password); + } + cbRemeberPwd.setChecked(remeberPassword); + + + } + + + public void onClick(View view) { + String spFileName = getResources().getString(R.string.share_preferences_file); + String accountKey = getResources().getString(R.string.login_account_name); + String passwordKey = getResources().getString(R.string.login_password); + String remeberPasswordKey = getResources().getString(R.string.login_remeber_password); + + SharedPreferences spFile = getSharedPreferences(spFileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = spFile.edit(); + + if(cbRemeberPwd.isChecked()){ + String password = etPwd.getText().toString(); + String account = etAccount.getText().toString(); + + editor.putString(accountKey, account); + editor.putString(passwordKey, password); + editor.putBoolean(remeberPasswordKey, true); + editor.apply(); + }else { + editor.remove(accountKey); + editor.remove(passwordKey); + editor.remove(remeberPasswordKey) ; + editor.apply(); + } + try { + this.Login(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + + private void Login() throws ClassNotFoundException { + + + ConnectServer connectServer = new ConnectServer(); + Headers headers = connectServer.getHeaders(new HashMap<>()); + + String username = etAccount.getText().toString(); + String password = etPwd.getText().toString(); + + FormBody.Builder builder_body = new FormBody.Builder(); + builder_body.add("username",username); + builder_body.add("password",password); + FormBody formBody = builder_body.build(); + //测试用的为了不发起登录请求 +// Intent musicStartIntent = new Intent(MainActivity.ACTION_REGISTER_START); +// sendBroadcast(musicStartIntent); + + //测试用的为了不发起登录请求 + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url(Constants.SERVER_URL+Constants.USER_LOGIN). + headers(headers).method("POST",formBody).build(); + Call call = client.newCall(request); + call.enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Log.d("Fail","请求失败了"); + Intent musicStartIntent = new Intent(MainActivity.ACTION_REGISTER_START); + sendBroadcast(musicStartIntent); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + if (response.isSuccessful()){ + final String body = response.body().string(); + System.out.println(body); + Gson gson1 = new Gson(); + Type jsonType = new TypeToken>(){}.getType(); + responseBody = gson1.fromJson(body,jsonType); + ResponseData data = responseBody.getData(); + if (responseBody.getCode()==200){ + SharedPreferences.Editor edit = sp.edit(); + edit.putString("username",data.getUsername()); + edit.putString("id",data.getId()); + + if (data.getAvatar()!=null){ + edit.putString("avatar",data.getAvatar()); + } + else { + edit.putString("avatar",""); + } + if (data.getSex()!=null){ + edit.putString("sex",data.getSex()); + } + else { + edit.putString("sex",""); + } + if (data.getIntroduce()!=null){ + edit.putString("introduce",data.getIntroduce()); + } + else { + edit.putString("introduce",""); + } + edit.apply(); + Intent musicStartIntent = new Intent(MainActivity.ACTION_REGISTER_START); + sendBroadcast(musicStartIntent); + } + + + } + + } + }); + } + +} \ No newline at end of file