Skip to content

Commit e8b20cd

Browse files
committed
- Added more utilities
1 parent 431aea1 commit e8b20cd

10 files changed

+702
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.phappy.library;
2+
3+
import android.Manifest;
4+
import android.content.ContentResolver;
5+
import android.content.Context;
6+
import android.content.pm.PackageManager;
7+
import android.database.Cursor;
8+
import android.net.Uri;
9+
import android.provider.ContactsContract;
10+
import android.support.v4.content.ContextCompat;
11+
12+
public class ContactUtils {
13+
/**
14+
* getting contact name from number
15+
* @param context is the service context
16+
* @param phoneNumber from which get name of the contact number
17+
* @return string
18+
*/
19+
public String getContactName(Context context, String phoneNumber) {
20+
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) !=
21+
PackageManager.PERMISSION_GRANTED) {
22+
return "";
23+
}
24+
ContentResolver cr = context.getContentResolver();
25+
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
26+
Uri.encode(phoneNumber));
27+
Cursor cursor = cr.query(uri,
28+
new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null);
29+
if (cursor == null) {
30+
return null;
31+
}
32+
String contactName = null;
33+
if (cursor.moveToFirst()) {
34+
contactName = cursor.getString(cursor
35+
.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
36+
}
37+
if (!cursor.isClosed()) {
38+
cursor.close();
39+
}
40+
return contactName;
41+
}
42+
43+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package com.phappy.library;
2+
3+
import android.app.DatePickerDialog;
4+
import android.app.TimePickerDialog;
5+
import android.content.Context;
6+
import android.support.annotation.NonNull;
7+
import android.widget.DatePicker;
8+
import android.widget.TimePicker;
9+
10+
import java.util.Calendar;
11+
import java.util.Date;
12+
13+
/**
14+
* Created by singhparamveer on 4/3/2018.
15+
* Utility class to show default date and time dialog and handle callback
16+
*/
17+
18+
public class DateTimePickerDialog {
19+
private boolean showTimePicker = true;
20+
private boolean showDatePicker = true;
21+
private Date defaultDate = new Date();
22+
private DateTimeSetListener dateTimeSetListener;
23+
24+
public void build(@NonNull final Context context, @NonNull DateTimeSetListener dateSetListener) {
25+
dateTimeSetListener = dateSetListener;
26+
Calendar calendar = Calendar.getInstance();
27+
calendar.setTime(defaultDate);
28+
if (showDatePicker) {
29+
DatePickerDialog datePickerDialog = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
30+
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
31+
Calendar calendar = Calendar.getInstance();
32+
calendar.setTime(defaultDate);
33+
calendar.set(Calendar.YEAR, year);
34+
calendar.set(Calendar.MONTH, monthOfYear);
35+
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
36+
defaultDate = calendar.getTime();
37+
if (showTimePicker)
38+
showTimePickerDialog(context);
39+
else if (dateTimeSetListener != null)
40+
dateTimeSetListener.onDateTimeSet(defaultDate);
41+
}
42+
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
43+
datePickerDialog.show();
44+
} else if (showTimePicker) {
45+
showTimePickerDialog(context);
46+
}
47+
}
48+
49+
private void showTimePickerDialog(Context context) {
50+
Calendar calendar = Calendar.getInstance();
51+
calendar.setTime(defaultDate);
52+
TimePickerDialog timePickerDialog = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
53+
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
54+
55+
Calendar calendar = Calendar.getInstance();
56+
calendar.setTime(defaultDate);
57+
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
58+
calendar.set(Calendar.MINUTE, minute);
59+
defaultDate = calendar.getTime();
60+
if (dateTimeSetListener != null)
61+
dateTimeSetListener.onDateTimeSet(defaultDate);
62+
}
63+
}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), false);
64+
timePickerDialog.show();
65+
}
66+
67+
public DateTimePickerDialog showTimePicker(boolean showTimePicker) {
68+
this.showTimePicker = showTimePicker;
69+
return this;
70+
}
71+
72+
public DateTimePickerDialog showDatePicker(boolean showDatePicker) {
73+
this.showDatePicker = showDatePicker;
74+
return this;
75+
}
76+
77+
public DateTimePickerDialog setDefaultDate(Date defaultDate) {
78+
this.defaultDate = defaultDate;
79+
return this;
80+
}
81+
}
82+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.phappy.library;
2+
3+
import java.util.Date;
4+
5+
public interface DateTimeSetListener {
6+
public void onDateTimeSet(Date date);
7+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.phappy.library;
2+
3+
import java.util.regex.Pattern;
4+
5+
public class EmailValidator {
6+
private static final Pattern EMAIL_PATTERN = Pattern.compile(
7+
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
8+
"\\@" +
9+
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
10+
"(" +
11+
"\\." +
12+
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
13+
")+"
14+
);
15+
16+
17+
public static boolean isValidEmail(String email) {
18+
return email != null && EMAIL_PATTERN.matcher(email).matches();
19+
}
20+
21+
public static boolean isvalid(String s) {
22+
return !s.isEmpty();
23+
}
24+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.phappy.library;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.NonNull;
5+
import android.support.v4.app.Fragment;
6+
import android.support.v4.app.FragmentManager;
7+
import android.support.v4.app.FragmentTransaction;
8+
9+
public class FragmentUtils {
10+
11+
public static void replaceFragment(@NonNull Fragment fragment, boolean isReplace, String tag, int id, FragmentManager fragmentManager, Bundle bundle) {
12+
Fragment existingFrag = fragmentManager.findFragmentById(id);
13+
14+
if (existingFrag != null && fragment.getClass().equals(existingFrag.getClass())
15+
&& existingFrag.getTag() != null && existingFrag.getTag().equals(tag))
16+
return;
17+
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
18+
if (bundle != null)
19+
fragment.setArguments(bundle);
20+
if (existingFrag != null && isReplace)
21+
fragmentTransaction.replace(id, fragment, tag).commit();
22+
else
23+
fragmentTransaction.add(id, fragment, tag).commit();
24+
}
25+
26+
public static void replaceFragment(Fragment fragment, String tag, int id, FragmentManager fragmentManager) {
27+
replaceFragment(fragment, true, tag, id, fragmentManager, null);
28+
}
29+
30+
public static void replaceFragment(Fragment fragment, int id, FragmentManager fragmentManager) {
31+
replaceFragment(fragment, true, "", id, fragmentManager, null);
32+
}
33+
34+
public static void replaceFragment(Fragment fragment, String tag, int id, FragmentManager fragmentManager, Bundle bundle) {
35+
replaceFragment(fragment, true, tag, id, fragmentManager, bundle);
36+
}
37+
}
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
package com.phappy.library;
2+
3+
import android.app.Activity;
4+
import android.content.BroadcastReceiver;
5+
import android.content.Context;
6+
import android.content.Intent;
7+
import android.content.IntentFilter;
8+
import android.net.ConnectivityManager;
9+
import android.net.NetworkInfo;
10+
import android.net.wifi.WifiManager;
11+
import android.support.annotation.RequiresPermission;
12+
import android.widget.Toast;
13+
14+
import static android.Manifest.permission.ACCESS_NETWORK_STATE;
15+
16+
/**
17+
* Created by singhParamveer on 2/11/2017.
18+
* Utility class for network related queries
19+
*/
20+
21+
public class NetworkUtil {
22+
23+
public static int TYPE_NOT_CONNECTED = 0;
24+
public static int TYPE_WIFI = 1;
25+
public static int TYPE_MOBILE = 2;
26+
public static int TYPE_IS_CONNECTING = 3;
27+
private NetworksBroadcast networksBroadcast;
28+
private NetworkStateListener networkStateListener;
29+
30+
/**
31+
* Get current status of network connection.
32+
*
33+
* @return status of current connection in int:
34+
* TYPE_NOT_CONNECTED = 0
35+
* TYPE_WIFI = 1
36+
* TYPE_MOBILE = 2
37+
* TYPE_IS_CONNECTING = 3
38+
*/
39+
@RequiresPermission(ACCESS_NETWORK_STATE)
40+
public static int getConnectivityStatus(Context context) {
41+
ConnectivityManager cm = (ConnectivityManager) context
42+
.getSystemService(Context.CONNECTIVITY_SERVICE);
43+
44+
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
45+
if (null != activeNetwork) {
46+
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
47+
return TYPE_WIFI;
48+
49+
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
50+
return TYPE_MOBILE;
51+
52+
NetworkInfo[] info = cm.getAllNetworkInfo();
53+
54+
for (int i = 0; i < info.length; i++) {
55+
if (info[i].getDetailedState() == NetworkInfo.DetailedState.CONNECTING) {
56+
return TYPE_IS_CONNECTING;
57+
}
58+
}
59+
}
60+
61+
return TYPE_NOT_CONNECTED;
62+
}
63+
64+
/**
65+
* Checks whether connected/connecting to any available network
66+
*
67+
* @param context
68+
* @return true: if connected or connecting
69+
* false: otherwise
70+
*/
71+
@RequiresPermission(ACCESS_NETWORK_STATE)
72+
public boolean isNetworkAvailable(Context context) {
73+
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
74+
NetworkInfo activeNetworkInfo = connectivityManager
75+
.getActiveNetworkInfo();
76+
return activeNetworkInfo != null
77+
&& activeNetworkInfo.isConnectedOrConnecting();
78+
}
79+
80+
@RequiresPermission(ACCESS_NETWORK_STATE)
81+
private String getConnectivityStatusString(Context context) {
82+
int conn = NetworkUtil.getConnectivityStatus(context);
83+
String status = null;
84+
if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {
85+
status = "Not connected to Internet";
86+
} else if (conn == NetworkUtil.TYPE_IS_CONNECTING) {
87+
status = "Poor internet connection";
88+
}
89+
return status;
90+
}
91+
92+
/**
93+
* Use this method to register for changes in network connectivity
94+
*
95+
* @param activity Activity's context
96+
* @param networkStateListener the listener to receive network callbacks
97+
*/
98+
public void initializeNetworkBroadcast(Activity activity, NetworkStateListener networkStateListener) {
99+
this.networkStateListener = networkStateListener;
100+
101+
IntentFilter intentFilter = new IntentFilter();
102+
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
103+
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
104+
if (networksBroadcast == null)
105+
networksBroadcast = new NetworksBroadcast();
106+
activity.registerReceiver(networksBroadcast, intentFilter);
107+
}
108+
109+
/**
110+
* Unregister from any network's broadcasts. Use proper activity lifecycle methods to register/unregister from any broadcasts
111+
*
112+
* @param activity Activity's context
113+
*/
114+
public void unregisterNetworkBroadcast(Activity activity) {
115+
try {
116+
if (networksBroadcast != null) {
117+
activity.unregisterReceiver(networksBroadcast);
118+
}
119+
} catch (IllegalArgumentException e) {
120+
networksBroadcast = null;
121+
}
122+
}
123+
124+
public void showNoConnectivityToast(Activity activity) {
125+
Toast.makeText(activity.getApplicationContext(),"No internet available", Toast.LENGTH_SHORT).show();
126+
}
127+
128+
public class NetworksBroadcast extends BroadcastReceiver {
129+
130+
@Override
131+
@RequiresPermission(ACCESS_NETWORK_STATE)
132+
public void onReceive(Context context, Intent intent) {
133+
String status = getConnectivityStatusString(context);
134+
if (networkStateListener != null) {
135+
networkStateListener.onNetworkStatus(status);
136+
}
137+
}
138+
}
139+
140+
public interface NetworkStateListener {
141+
void onNetworkStatus(String status);
142+
}
143+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.phappy.library;
2+
3+
import java.util.regex.Pattern;
4+
5+
public class PasswordValidator {
6+
private static final Pattern PASSWORD_PATTERN =Pattern.compile("((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})");
7+
//(?=.*[@#$%])
8+
9+
public static boolean isvalid(String s) {
10+
return !s.isEmpty();
11+
}
12+
13+
public static boolean isValidPassword(CharSequence password) {
14+
return password != null && PASSWORD_PATTERN.matcher(password).matches();
15+
}
16+
}

0 commit comments

Comments
 (0)