Merge branch 'master' of https://github.com/sagidayan/TheSocialNotework-Android
This commit is contained in:
commit
ffe73a159e
7 changed files with 347 additions and 133 deletions
|
@ -10,12 +10,9 @@ import android.widget.Button;
|
|||
import android.widget.EditText;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.volley.Response;
|
||||
import com.android.volley.VolleyError;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -27,14 +24,11 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
private Button registerButton;
|
||||
private Button testBtn;
|
||||
private RegisterActivity self;
|
||||
|
||||
protected RelativeLayout layout;
|
||||
private final String TAG = "Register Activity";
|
||||
|
||||
private final String TAG = "[TSN/RegisterActivity]";
|
||||
private final String BASE_URL = "http://thesocialnotework-api.appspot.com/api";
|
||||
private final String REG_PATH = "/register";
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -58,15 +52,30 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
this.registerButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
private boolean isUsernameValid(String username) { // username validation
|
||||
/**
|
||||
* username validation
|
||||
* @param username
|
||||
* @return
|
||||
*/
|
||||
private boolean isUsernameValid(String username) {
|
||||
return !TextUtils.isEmpty(username) && username.length() > 0;
|
||||
}
|
||||
|
||||
private boolean isPasswordValid(String password) { // password validation
|
||||
/**
|
||||
* password validation
|
||||
* @param password
|
||||
* @return
|
||||
*/
|
||||
private boolean isPasswordValid(String password) {
|
||||
return !TextUtils.isEmpty(password) && password.length() > 3;
|
||||
}
|
||||
|
||||
private boolean isEmailValid(String email) { // email validation
|
||||
/**
|
||||
* email validation
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
private boolean isEmailValid(String email) {
|
||||
if (TextUtils.isEmpty(email))
|
||||
return false;
|
||||
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
|
||||
|
@ -75,11 +84,21 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
return matcher.matches();
|
||||
}
|
||||
|
||||
private boolean isParamsValid(String username, String password, String email) { // private method that validates all params
|
||||
/**
|
||||
* private method that validates all params
|
||||
* @param username
|
||||
* @param password
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
private boolean isParamsValid(String username, String password, String email) {
|
||||
return (isUsernameValid(username) && isPasswordValid(password) && isEmailValid(email));
|
||||
}
|
||||
|
||||
private void attemptRegister() { // attempt registering
|
||||
/**
|
||||
* attempt registering
|
||||
*/
|
||||
private void attemptRegister() {
|
||||
Utils.showLoadingDialog(this, "Registering", "Please Wait...");
|
||||
if (isParamsValid(mUsernameView.getText().toString(), mPasswordView.getText().toString(), mEmailView.getText().toString())) { // params are valid
|
||||
String username = mUsernameView.getText().toString();
|
||||
|
@ -101,9 +120,16 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* listener to success response on register from server
|
||||
*/
|
||||
Response.Listener<JSONObject> onRegisterSuccess = new Response.Listener<JSONObject>() {
|
||||
/**
|
||||
* on response register from server
|
||||
* @param response
|
||||
*/
|
||||
@Override
|
||||
public void onResponse(JSONObject response) { // listener to success response on register from server
|
||||
public void onResponse(JSONObject response) {
|
||||
Utils.dismissLoadingDialog();
|
||||
try {
|
||||
if (response.getString("message").equals("created")) { // user created
|
||||
|
@ -120,16 +146,25 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
Response.ErrorListener onRegisterError = new Response.ErrorListener() {
|
||||
/**
|
||||
* listener to error response on register from server
|
||||
* @param error
|
||||
*/
|
||||
@Override
|
||||
public void onErrorResponse(VolleyError error) { // listener to error response on register from server
|
||||
public void onErrorResponse(VolleyError error) {
|
||||
Utils.dismissLoadingDialog();
|
||||
Toast.makeText(self, "Username is already taken. maybe: " + mUsernameView.getText().toString() + "_666 ? :)", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* onclick methods to redirect to register and to login
|
||||
* @param view
|
||||
*/
|
||||
@Override
|
||||
public void onClick(View view) { // onclick methods to redirect to register and to login
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.ra_register_button:
|
||||
attemptRegister();
|
||||
|
@ -140,7 +175,10 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
|
|||
}
|
||||
}
|
||||
|
||||
private void returnToLogin() { // redirect to login
|
||||
/**
|
||||
* redirect to login
|
||||
*/
|
||||
private void returnToLogin() {
|
||||
Intent i = new Intent(RegisterActivity.this, LoginActivity.class);
|
||||
startActivity(i);
|
||||
finish();
|
||||
|
|
|
@ -14,18 +14,37 @@ public class RoundAvatarImageView extends ImageView {
|
|||
|
||||
public static float radius = 110.0f;
|
||||
|
||||
/**
|
||||
* constructor I
|
||||
* @param context
|
||||
*/
|
||||
public RoundAvatarImageView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* constructor II
|
||||
* @param context
|
||||
* @param attrs
|
||||
*/
|
||||
public RoundAvatarImageView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* constructor III
|
||||
* @param context
|
||||
* @param attrs
|
||||
* @param defStyle
|
||||
*/
|
||||
public RoundAvatarImageView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clip the image to a rounded avatar
|
||||
* @param canvas
|
||||
*/
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
//float radius = 36.0f;
|
||||
|
|
|
@ -52,19 +52,32 @@ public class SettingsFragment extends Fragment implements View.OnClickListener,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* a function that called when this class created
|
||||
*
|
||||
* @param savedInstanceState
|
||||
*/
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* a function that called when view is created
|
||||
*
|
||||
* @param inflater
|
||||
* @param container
|
||||
* @param savedInstanceState
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_settings, container, false);
|
||||
this.parent = (MainActivity) getActivity();
|
||||
Utils.showLoadingDialog(parent, "Just a sec...", "");
|
||||
this.user = parent.getUser();
|
||||
this.parent = (MainActivity) getActivity(); // holds the activity
|
||||
Utils.showLoadingDialog(parent, "Just a sec...", ""); // loading dialog
|
||||
this.user = parent.getUser(); // holds the user
|
||||
|
||||
this.cameraBtn = (ImageButton) view.findViewById(R.id.btn_camera);
|
||||
this.cameraBtn.setOnClickListener(this);
|
||||
this.avatarImage = (ImageView) view.findViewById(R.id.settings_userAvater_iamgeView);
|
||||
|
@ -105,21 +118,21 @@ public class SettingsFragment extends Fragment implements View.OnClickListener,
|
|||
super.onDetach();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* a function that called on click
|
||||
*
|
||||
* @param view
|
||||
*/
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.btn_camera:
|
||||
//check for permission
|
||||
// ActivityCompat.requestPermissions(parent, new String[]{Manifest.permission.CAMERA}, 1);
|
||||
if ((ActivityCompat.checkSelfPermission(parent, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)
|
||||
&& (ActivityCompat.checkSelfPermission(parent, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
|
||||
openCamera(view);
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "No Camera or Storage Permissions granted.\n\"An App is nothing without its permissions\"", Toast.LENGTH_LONG).show();
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
case R.id.btn_save:
|
||||
if (txt_password.getText().length() > 3 && txt_email.getText().length() > 0)
|
||||
|
@ -147,15 +160,25 @@ public class SettingsFragment extends Fragment implements View.OnClickListener,
|
|||
startActivityForResult(intent, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a folder to hold the photos
|
||||
*/
|
||||
protected void createDir() {
|
||||
File f = new File(Utils.PHOTOS_DIR_PATH);
|
||||
f.mkdirs();
|
||||
}
|
||||
|
||||
/**
|
||||
* upon receiving response from the camera
|
||||
*
|
||||
* @param requestCode
|
||||
* @param resultCode
|
||||
* @param intent
|
||||
*/
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resaultCode, Intent intent) {
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
||||
super.onActivityResult(requestCode, requestCode, intent);
|
||||
if (resaultCode == Activity.RESULT_OK) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
if (currentImgUri != null) {
|
||||
saveImage();
|
||||
Log.d(TAG, "onActivityResult: Image Capured!! - Now Upload That Shit!!");
|
||||
|
@ -169,47 +192,51 @@ public class SettingsFragment extends Fragment implements View.OnClickListener,
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the image
|
||||
*/
|
||||
private void saveImage() {
|
||||
Utils.showLoadingDialog(parent, "Saving Image...", "This Can Take a while");
|
||||
Utils.showLoadingDialog(parent, "Saving Image...", "This Can Take a while"); // Loader
|
||||
Bitmap b = BitmapFactory.decodeFile(currentImgUri.getPath()); // Original Image
|
||||
Bitmap out;
|
||||
|
||||
Bitmap b= BitmapFactory.decodeFile(currentImgUri.getPath()); // Original Image
|
||||
Bitmap out;
|
||||
if (b.getWidth() >= b.getHeight()){
|
||||
|
||||
out = Bitmap.createBitmap(
|
||||
b,
|
||||
b.getWidth()/2 - b.getHeight()/2,
|
||||
0,
|
||||
b.getHeight(),
|
||||
b.getHeight()
|
||||
);
|
||||
|
||||
}else{
|
||||
out = Bitmap.createBitmap(
|
||||
b,
|
||||
0,
|
||||
b.getHeight()/2 - b.getWidth()/2,
|
||||
b.getWidth(),
|
||||
b.getWidth()
|
||||
);
|
||||
}
|
||||
out = Bitmap.createScaledBitmap(out, 320, 320, false);
|
||||
|
||||
File file = new File(currentImgUri.getPath());
|
||||
FileOutputStream fOut;
|
||||
try {
|
||||
fOut = new FileOutputStream(file);
|
||||
out.compress(Bitmap.CompressFormat.PNG, 100, fOut);
|
||||
fOut.flush();
|
||||
fOut.close();
|
||||
b.recycle();
|
||||
out.recycle();
|
||||
} catch (Exception e) {}
|
||||
// Crop image
|
||||
if (b.getWidth() >= b.getHeight()) {
|
||||
|
||||
out = Bitmap.createBitmap(
|
||||
b,
|
||||
b.getWidth() / 2 - b.getHeight() / 2,
|
||||
0,
|
||||
b.getHeight(),
|
||||
b.getHeight()
|
||||
);
|
||||
} else {
|
||||
out = Bitmap.createBitmap(
|
||||
b,
|
||||
0,
|
||||
b.getHeight() / 2 - b.getWidth() / 2,
|
||||
b.getWidth(),
|
||||
b.getWidth()
|
||||
);
|
||||
}
|
||||
// Resizing image
|
||||
out = Bitmap.createScaledBitmap(out, 320, 320, false);
|
||||
|
||||
File file = new File(currentImgUri.getPath());
|
||||
FileOutputStream fOut;
|
||||
|
||||
try {
|
||||
fOut = new FileOutputStream(file);
|
||||
out.compress(Bitmap.CompressFormat.PNG, 100, fOut);
|
||||
fOut.flush();
|
||||
fOut.close();
|
||||
b.recycle();
|
||||
out.recycle();
|
||||
} catch (Exception e) {}
|
||||
|
||||
JSONObject payload = new JSONObject();
|
||||
|
||||
// Upload image
|
||||
try {
|
||||
payload.put("image", ImageToBase64(file.getAbsolutePath()));
|
||||
} catch (JSONException e) {
|
||||
|
@ -234,6 +261,11 @@ public class SettingsFragment extends Fragment implements View.OnClickListener,
|
|||
}, Utils.genericErrorListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the file to base 64 bit
|
||||
* @param filePath
|
||||
* @return
|
||||
*/
|
||||
private String ImageToBase64(String filePath) {
|
||||
Bitmap bm = BitmapFactory.decodeFile(filePath);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
|
|
|
@ -6,14 +6,18 @@ import android.os.Bundle;
|
|||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
|
||||
public class SplashActivity extends AppCompatActivity {
|
||||
|
||||
private ImageView background;
|
||||
private int timerDelay = 3500;
|
||||
|
||||
/**
|
||||
* called when this class is created
|
||||
* @param savedInstanceState
|
||||
*/
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -21,7 +25,9 @@ public class SplashActivity extends AppCompatActivity {
|
|||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
setContentView(R.layout.activity_splash);
|
||||
background = (ImageView) findViewById(R.id.background);
|
||||
final int sdk = android.os.Build.VERSION.SDK_INT;
|
||||
|
||||
final int sdk = android.os.Build.VERSION.SDK_INT; // holds the sdk
|
||||
// Configuring the method to use considering the sdk
|
||||
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
|
||||
background.setImageDrawable( getResources().getDrawable(rand_splash()) );
|
||||
} else {
|
||||
|
@ -30,6 +36,7 @@ public class SplashActivity extends AppCompatActivity {
|
|||
|
||||
final String userData = Utils.getUserFromSharedPrefs(this);
|
||||
|
||||
// Timer for the splash image until it will disappear
|
||||
Thread timerThread = new Thread(){
|
||||
public void run(){
|
||||
try{
|
||||
|
@ -53,6 +60,9 @@ public class SplashActivity extends AppCompatActivity {
|
|||
timerThread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* on pause function
|
||||
*/
|
||||
@Override
|
||||
protected void onPause() {
|
||||
// TODO Auto-generated method stub
|
||||
|
@ -60,6 +70,10 @@ public class SplashActivity extends AppCompatActivity {
|
|||
finish();
|
||||
}
|
||||
|
||||
/**
|
||||
* randomize splash screen
|
||||
* @return
|
||||
*/
|
||||
protected int rand_splash() {
|
||||
int min = 2, max = 4;
|
||||
// Usually this can be a field rather than a method variable
|
||||
|
@ -69,10 +83,6 @@ public class SplashActivity extends AppCompatActivity {
|
|||
// so add 1 to make it inclusive
|
||||
int randomNum = rand.nextInt((max - min) + 1) + min;
|
||||
switch (randomNum){
|
||||
// case 0:
|
||||
// return R.drawable.splash_0;
|
||||
// case 1:
|
||||
// return R.drawable.splash_1;
|
||||
case 2:
|
||||
return R.drawable.splash_2;
|
||||
case 3:
|
||||
|
|
|
@ -66,6 +66,8 @@ public class User {
|
|||
Log.d(TAG, "User: Constructor Created:\n"+this.toString());
|
||||
}
|
||||
|
||||
// Getters & Setters //
|
||||
|
||||
public int getNumber_of_notes() {
|
||||
return number_of_notes;
|
||||
}
|
||||
|
@ -111,6 +113,10 @@ public class User {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* get liked notes
|
||||
* @return
|
||||
*/
|
||||
public Vector<String> getLiked_notes() {
|
||||
return liked_notes;
|
||||
}
|
||||
|
@ -124,10 +130,18 @@ public class User {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* convert the user object to string in order to save to the shared prefs
|
||||
* @return
|
||||
*/
|
||||
public String Serialise(){
|
||||
return id + ATTARS_DELIMETER + username + ATTARS_DELIMETER + password + ATTARS_DELIMETER + email + ATTARS_DELIMETER +avatar + ATTARS_DELIMETER + serialiseNoteList();
|
||||
}
|
||||
|
||||
/**
|
||||
* convert the user note list to string in order to save to the shared prefs
|
||||
* @return
|
||||
*/
|
||||
private String serialiseNoteList() {
|
||||
String result = "";
|
||||
for (int i = 0; i < liked_notes.size(); i++) {
|
||||
|
@ -143,6 +157,10 @@ public class User {
|
|||
return "Id: "+id+" UserName: " + username +" Password: " +password +" email: " + email+ " Avatar: " +avatar+" Liked Notes: "+liked_notes.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* update user
|
||||
* @param activity
|
||||
*/
|
||||
public void updateUser(final MainActivity activity){
|
||||
VolleyUtilSingleton.getInstance(activity).post(Utils.BASE_URL + "/user/upsert", this.toJSON(), new Response.Listener<JSONObject>() {
|
||||
@Override
|
||||
|
|
|
@ -19,8 +19,6 @@ import android.widget.ImageView;
|
|||
|
||||
import com.android.volley.Response;
|
||||
import com.android.volley.VolleyError;
|
||||
import com.google.android.gms.maps.model.BitmapDescriptor;
|
||||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
|
@ -40,23 +38,28 @@ import java.util.HashMap;
|
|||
public class Utils {
|
||||
|
||||
public static final String TAG = "Utils";
|
||||
public static final String BASE_URL = "http://thesocialnotework-api.appspot.com/api", UPLOAD_IMAGE_PATH="/file/upload";
|
||||
public static final String BASE_URL = "http://thesocialnotework-api.appspot.com/api", UPLOAD_IMAGE_PATH = "/file/upload";
|
||||
public static ProgressDialog progress;
|
||||
private static HashMap<String, Bitmap> bitmapHash = new HashMap<>();
|
||||
public static final String PHOTOS_DIR_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/TheSocialNotework/";
|
||||
public static final String PHOTOS_DIR_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/TheSocialNotework/";
|
||||
|
||||
private static boolean mLocationPermission = false;
|
||||
private static boolean mCameraPermission = false;
|
||||
private static SharedPreferences prefs;
|
||||
public static int filterColor = Color.parseColor("#33adff"), circleColor =0x6666a3ff;
|
||||
|
||||
public static final long DAY_MILI = 86400000L,WEEK_MILI = 604800000L,MONTH_MILI = 2592000000L;
|
||||
public static final float DISTANCE_SMALL = 1000,DISTANCE_MEDIUM = 10000,DISTANCE_LONG = 100000;
|
||||
public static int filterColor = Color.parseColor("#33adff"), circleColor = 0x6666a3ff;
|
||||
|
||||
public static final long DAY_MILI = 86400000L, WEEK_MILI = 604800000L, MONTH_MILI = 2592000000L;
|
||||
public static final float DISTANCE_SMALL = 1000, DISTANCE_MEDIUM = 10000, DISTANCE_LONG = 100000;
|
||||
|
||||
|
||||
/**
|
||||
* gets the bitmap from the url
|
||||
*
|
||||
* @param url
|
||||
* @return
|
||||
*/
|
||||
public static Bitmap getBitmapFromURL(String url) {
|
||||
if (Utils.bitmapHash.containsKey(url)){
|
||||
if (Utils.bitmapHash.containsKey(url)) {
|
||||
Log.d(TAG, "getBitmapFromURL: Found is hash");
|
||||
return bitmapHash.get(url);
|
||||
} else {
|
||||
|
@ -78,8 +81,9 @@ public class Utils {
|
|||
|
||||
}
|
||||
|
||||
|
||||
// //Generic response ErrorListener
|
||||
/**
|
||||
* Generic response ErrorListener
|
||||
*/
|
||||
public static Response.ErrorListener genericErrorListener = new Response.ErrorListener() {
|
||||
@Override
|
||||
public void onErrorResponse(VolleyError error) {
|
||||
|
@ -88,7 +92,9 @@ public class Utils {
|
|||
Utils.dismissLoadingDialog();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Generic response deleteNoteSuccessListener
|
||||
*/
|
||||
public static Response.Listener<JSONObject> deleteNoteSuccessListener = new Response.Listener<JSONObject>() {
|
||||
@Override
|
||||
public void onResponse(JSONObject response) {
|
||||
|
@ -96,7 +102,9 @@ public class Utils {
|
|||
}
|
||||
};
|
||||
|
||||
//response listener for getting all user notes
|
||||
/**
|
||||
* response listener for getting all user notes
|
||||
*/
|
||||
public static Response.Listener<JSONObject> genericSuccessListener = new Response.Listener<JSONObject>() {
|
||||
@Override
|
||||
public void onResponse(JSONObject response) {
|
||||
|
@ -104,6 +112,13 @@ public class Utils {
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Show loading dialog
|
||||
*
|
||||
* @param context
|
||||
* @param title
|
||||
* @param msg
|
||||
*/
|
||||
public static void showLoadingDialog(Context context, String title, String msg) {
|
||||
progress = new ProgressDialog(context);
|
||||
progress.setTitle(title);
|
||||
|
@ -112,17 +127,23 @@ public class Utils {
|
|||
progress.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop loading dialog
|
||||
*/
|
||||
public static void dismissLoadingDialog() {
|
||||
|
||||
if (progress != null && progress.isShowing()) {
|
||||
progress.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get all the notes from the object
|
||||
* @param noteObject
|
||||
* @param time
|
||||
* @return
|
||||
* @throws JSONException
|
||||
*/
|
||||
public static Note getNoteFromJsonObj(JSONObject noteObject, Date time) throws JSONException {
|
||||
// List<Note> listOfNotes = new ArrayList<>();
|
||||
|
||||
Note note = new Note(
|
||||
noteObject.getString("id"),
|
||||
Float.parseFloat(noteObject.getJSONObject("location").getString("lat")),
|
||||
|
@ -138,10 +159,13 @@ public class Utils {
|
|||
jsonArrayToStringArray(noteObject.getJSONArray("tags"))
|
||||
);
|
||||
return note;
|
||||
// listOfNotes.add(addNote);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* convert json array to string array
|
||||
* @param jArray
|
||||
* @return
|
||||
*/
|
||||
public static ArrayList<String> jsonArrayToStringArray(JSONArray jArray) {
|
||||
ArrayList<String> stringArray = new ArrayList<String>();
|
||||
for (int i = 0, count = jArray.length(); i < count; i++) {
|
||||
|
@ -155,36 +179,48 @@ public class Utils {
|
|||
return stringArray;
|
||||
}
|
||||
|
||||
public static void URLtoImageView(ImageView iv, String url){
|
||||
if(bitmapHash.containsKey(url)){
|
||||
iv.setImageBitmap(bitmapHash.get(url));
|
||||
}else{
|
||||
new setUserAvatar(iv, url).execute();
|
||||
}
|
||||
}
|
||||
|
||||
private static class setUserAvatar extends AsyncTask<Void, Void, Bitmap> {
|
||||
private ImageView iv;
|
||||
private String url;
|
||||
|
||||
public setUserAvatar(ImageView imageView, String url) {
|
||||
this.iv = imageView;
|
||||
this.url = url;
|
||||
/**
|
||||
* convert url to image view
|
||||
* @param iv
|
||||
* @param url
|
||||
*/
|
||||
public static void URLtoImageView(ImageView iv, String url) {
|
||||
if (bitmapHash.containsKey(url)) {
|
||||
iv.setImageBitmap(bitmapHash.get(url));
|
||||
} else {
|
||||
new setUserAvatar(iv, url).execute();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Bitmap doInBackground(Void... v) {
|
||||
// Bitmap b;
|
||||
/**
|
||||
* sets the user avatar
|
||||
*/
|
||||
private static class setUserAvatar extends AsyncTask<Void, Void, Bitmap> {
|
||||
private ImageView iv;
|
||||
private String url;
|
||||
|
||||
return Utils.getBitmapFromURL(url);
|
||||
public setUserAvatar(ImageView imageView, String url) {
|
||||
this.iv = imageView;
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Bitmap doInBackground(Void... v) {
|
||||
return Utils.getBitmapFromURL(url);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Bitmap b) {
|
||||
iv.setImageBitmap(b);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Bitmap b) {
|
||||
iv.setImageBitmap(b);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* gets a rounded bitmap
|
||||
* @param bitmap
|
||||
* @param pixels
|
||||
* @return
|
||||
*/
|
||||
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
|
||||
Log.d(TAG, "rounded bitmap");
|
||||
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
|
||||
|
@ -208,44 +244,78 @@ public class Utils {
|
|||
return output;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* set location permission
|
||||
* @param locationPermission
|
||||
*/
|
||||
public static void setLocationPermission(boolean locationPermission) {
|
||||
mLocationPermission = locationPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* set camera permission
|
||||
* @param cameraPermission
|
||||
*/
|
||||
public static void setCameraPermission(boolean cameraPermission) {
|
||||
mCameraPermission = cameraPermission;
|
||||
}
|
||||
|
||||
/**
|
||||
* check for permissions
|
||||
* @return
|
||||
*/
|
||||
public static boolean arePermissionsGranted() {
|
||||
return (mLocationPermission && mCameraPermission);
|
||||
}
|
||||
|
||||
public static boolean isCameraPermissionGranted(){
|
||||
/**
|
||||
* checks for camera permission
|
||||
* @return
|
||||
*/
|
||||
public static boolean isCameraPermissionGranted() {
|
||||
return mCameraPermission;
|
||||
}
|
||||
public static boolean isLocationPermissionGranted(){
|
||||
|
||||
/**
|
||||
* checks for location permission
|
||||
* @return
|
||||
*/
|
||||
public static boolean isLocationPermissionGranted() {
|
||||
return mLocationPermission;
|
||||
}
|
||||
|
||||
public static String getUserFromSharedPrefs(Context contexst){
|
||||
if(prefs == null){
|
||||
prefs = contexst.getSharedPreferences(MainActivity.LOCAL_DATA_TSN, Context.MODE_PRIVATE);
|
||||
/**
|
||||
* get user from shared prefs
|
||||
* @param contexst
|
||||
* @return
|
||||
*/
|
||||
public static String getUserFromSharedPrefs(Context contexst) {
|
||||
if (prefs == null) {
|
||||
prefs = contexst.getSharedPreferences(MainActivity.LOCAL_DATA_TSN, Context.MODE_PRIVATE);
|
||||
}
|
||||
return prefs.getString("UserData", null);
|
||||
};
|
||||
|
||||
/**
|
||||
* update user shared pref
|
||||
* @param data
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void updateUserSharedPref(String data) throws Exception {
|
||||
if (prefs == null) throw new Exception("Prefs are not available");
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.putString("UserData", data);
|
||||
editor.commit();
|
||||
}
|
||||
return prefs.getString("UserData", null);
|
||||
};
|
||||
|
||||
public static void updateUserSharedPref(String data) throws Exception {
|
||||
if(prefs == null) throw new Exception("Prefs are not available");
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.putString("UserData", data);
|
||||
editor.commit();
|
||||
}
|
||||
|
||||
public static void removeUserDataFromPrefs() throws Exception{
|
||||
if(prefs == null) throw new Exception("Prefs are not available");
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.remove("UserData");
|
||||
editor.commit();
|
||||
}
|
||||
/**
|
||||
* remove user data
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void removeUserDataFromPrefs() throws Exception {
|
||||
if (prefs == null) throw new Exception("Prefs are not available");
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.remove("UserData");
|
||||
editor.commit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,10 @@ public class VolleyUtilSingleton {
|
|||
private final String TAG = "VolleyUtilSingleton";
|
||||
|
||||
|
||||
/**
|
||||
* volley singleton
|
||||
* @param context
|
||||
*/
|
||||
private VolleyUtilSingleton(Context context) {
|
||||
mCtx = context;
|
||||
mRequestQueue = getRequestQueue();
|
||||
|
@ -32,6 +36,11 @@ public class VolleyUtilSingleton {
|
|||
mImageLoader = new ImageLoader(this.mRequestQueue,new LruBitmapCache());
|
||||
}
|
||||
|
||||
/**
|
||||
* new singleton
|
||||
* @param context
|
||||
* @return
|
||||
*/
|
||||
public static synchronized VolleyUtilSingleton getInstance(Context context) {
|
||||
if (mInstance == null) {
|
||||
mInstance = new VolleyUtilSingleton(context);
|
||||
|
@ -56,6 +65,11 @@ public class VolleyUtilSingleton {
|
|||
return mImageLoader;
|
||||
}
|
||||
|
||||
/**
|
||||
* create new user on http request
|
||||
* @param url
|
||||
* @param body
|
||||
*/
|
||||
public void newUser(String url, JSONObject body) {
|
||||
JsonObjectRequest request =
|
||||
new JsonObjectRequest(
|
||||
|
@ -86,6 +100,13 @@ public class VolleyUtilSingleton {
|
|||
addToRequestQueue(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* http post request
|
||||
* @param url
|
||||
* @param body
|
||||
* @param successFunction
|
||||
* @param errorFunction
|
||||
*/
|
||||
public void post(String url, JSONObject body, Response.Listener<JSONObject> successFunction, Response.ErrorListener errorFunction) {
|
||||
JsonObjectRequest request =
|
||||
new JsonObjectRequest(
|
||||
|
@ -98,6 +119,12 @@ public class VolleyUtilSingleton {
|
|||
addToRequestQueue(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* http get request
|
||||
* @param url
|
||||
* @param successFunction
|
||||
* @param errorFunction
|
||||
*/
|
||||
public void get(String url, Response.Listener<JSONObject> successFunction, Response.ErrorListener errorFunction) {
|
||||
JsonObjectRequest request =
|
||||
new JsonObjectRequest(
|
||||
|
|
Loading…
Reference in a new issue