Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ucst.paddydetectionandtreatmentinformationsystem.activity;
- import android.Manifest;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.database.Cursor;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
- import android.net.Uri;
- import android.provider.MediaStore;
- import android.support.annotation.Nullable;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.Html;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.RelativeLayout;
- import android.widget.Toast;
- import com.ucst.paddydetectionandtreatmentinformationsystem.R;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Auth;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Domain;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Identity;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Password;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Project;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.Scope;
- import com.ucst.paddydetectionandtreatmentinformationsystem.Token.User;
- import com.ucst.paddydetectionandtreatmentinformationsystem.adapter.Token;
- import com.ucst.paddydetectionandtreatmentinformationsystem.listener.TokenClient;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import retrofit2.Retrofit;
- import retrofit2.converter.gson.GsonConverterFactory;
- public class CheckInsect extends AppCompatActivity {
- private Button search;
- private ImageView camera;
- String token;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_check_insect);
- camera = findViewById(R.id.camera);
- search = findViewById(R.id.btn_search);
- camera.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- final CharSequence[] options = {"Take Photo", "Choose from Gallery", "Cancel"};
- AlertDialog.Builder builder = new AlertDialog.Builder(CheckInsect.this);
- builder.setTitle("Choose your profile picture");
- builder.setItems(options, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int item) {
- if (options[item].equals("Take Photo")) {
- if (ContextCompat.checkSelfPermission(CheckInsect.this, Manifest.permission.CAMERA)
- != PackageManager.PERMISSION_GRANTED) {
- // Ask camera permission
- ActivityCompat.requestPermissions(CheckInsect.this,
- new String[]{Manifest.permission.CAMERA},
- 1);
- } else {
- //open camera
- Intent takePicture = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(takePicture, 0);
- }
- } else if (options[item].equals("Choose from Gallery")) {
- if (ContextCompat.checkSelfPermission(CheckInsect.this, Manifest.permission.READ_EXTERNAL_STORAGE)
- != PackageManager.PERMISSION_GRANTED) {
- // ask permission for gallery
- ActivityCompat.requestPermissions(CheckInsect.this,
- new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
- 1);
- } else {
- // open gallery
- Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
- startActivityForResult(pickPhoto, 1);
- }
- } else if (options[item].equals("Cancel")) {
- dialog.dismiss();
- }
- }
- });
- builder.show();
- }
- });
- search.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String test_img = String.valueOf(camera.getTag());
- if (test_img.endsWith("no")) {
- // need to add image
- AlertDialog.Builder builder = new AlertDialog.Builder(CheckInsect.this);
- builder.setMessage(Html.fromHtml("<font color='#6A6A6A'>You need to add photo first</font>"))
- .setTitle(Html.fromHtml("<b>" + "Missing photo" + "</b>"))
- .setCancelable(false)
- .setPositiveButton(Html.fromHtml("<font color='#007FBF'>OK</font>"), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- }
- });
- final AlertDialog alert = builder.create();
- alert.setOnShowListener(new DialogInterface.OnShowListener() {
- @Override
- public void onShow(DialogInterface dialogInterface) {
- alert.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorPrimary));
- }
- });
- alert.show();
- } else {
- // check internet connection
- ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
- connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
- // call insect detail
- // get token
- getToken();
- Intent intent = new Intent(CheckInsect.this, InsectDetail.class);
- startActivity(intent);
- } else {
- AlertDialog.Builder builder = new AlertDialog.Builder(CheckInsect.this);
- builder.setMessage(Html.fromHtml("<font color='#6A6A6A'>You need to add photo first</font>"))
- .setTitle(Html.fromHtml("<b>" + "No internet connection" + "</b>"))
- .setCancelable(false)
- .setPositiveButton(Html.fromHtml("<font color='#007FBF'>OK</font>"), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- }
- });
- final AlertDialog alert = builder.create();
- alert.setOnShowListener(new DialogInterface.OnShowListener() {
- @Override
- public void onShow(DialogInterface dialogInterface) {
- alert.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorPrimary));
- }
- });
- alert.show();
- }
- }
- }
- });
- }
- //open camera and gallery
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- // super.onActivityResult(requestCode, resultCode, data);
- if (resultCode != RESULT_CANCELED) {
- switch (requestCode) {
- case 0:
- if (resultCode == RESULT_OK && data != null) {
- Bitmap selectedImage = (Bitmap) data.getExtras().get("data");
- camera.setImageBitmap(selectedImage);
- camera.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 400));
- camera.setTag("update");
- }
- break;
- case 1:
- if (resultCode == RESULT_OK && data != null) {
- Uri selectedImage = data.getData();
- String[] filePathColumn = {MediaStore.Images.Media.DATA};
- if (selectedImage != null) {
- Cursor cursor = getContentResolver().query(selectedImage,
- filePathColumn, null, null, null);
- if (cursor != null) {
- cursor.moveToFirst();
- int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
- String picturePath = cursor.getString(columnIndex);
- camera.setImageBitmap(BitmapFactory.decodeFile(picturePath));
- camera.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 400));
- camera.setTag("update");
- cursor.close();
- }
- }
- }
- break;
- }
- }
- }
- // request permission
- @Override
- public void onRequestPermissionsResult(int requestCode,
- String permissions[], int[] grantResults) {
- switch (requestCode) {
- case 1: {
- // If request is cancelled, the result arrays are empty.
- if (grantResults.length > 0
- && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- if (permissions[0].endsWith("android.permission.READ_EXTERNAL_STORAGE")) {
- Intent pickPhoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
- startActivityForResult(pickPhoto, 1);
- } else {
- Intent takePicture = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(takePicture, 0);
- }
- // permission was granted, yay! Do the
- // contacts-related task you need to do.
- } else {
- // permission denied, boo! Disable the
- // functionality that depends on this permission.
- Toast.makeText(CheckInsect.this, "Permission denied", Toast.LENGTH_SHORT).show();
- }
- return;
- }
- // other 'case' lines to check for other
- // permissions this app might request
- }
- }
- // get token
- private void getToken() {
- Project p = new Project("ap-southeast-1");
- Scope s = new Scope(p);
- Domain d = new Domain("ucs_taungoo");
- User u = new User("ucs_taungoo", "ucst12345", d);
- Password pass = new Password(u);
- String str[] = {"password"};
- Identity i = new Identity(str, pass);
- Auth a = new Auth(i, s);
- Token tk = new Token(a);
- //Object building finish ...
- SendRequest(tk);
- }
- // send request to get token
- private void SendRequest(Token tk) {
- Retrofit.Builder builder = new Retrofit.Builder()
- .baseUrl("https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/")
- .addConverterFactory(GsonConverterFactory.create());
- Retrofit retrofit = builder.build();
- TokenClient client = retrofit.create(TokenClient.class);
- Call<Token> call = client.CreateToken(tk);
- call.enqueue(new Callback<Token>() {
- @Override
- public void onResponse(Call<Token> call, Response<Token> response) {
- token = response.headers().get("X-Subject-Token");
- // SendImage(token);
- Toast.makeText(CheckInsect.this, token, Toast.LENGTH_LONG).show();
- }
- @Override
- public void onFailure(Call<Token> call, Throwable t) {
- Toast.makeText(CheckInsect.this, "Something went wrong", Toast.LENGTH_LONG).show();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement