Public api for Mobile Application
https://github.com/sohel274/public-apis
https://github.com/sohel274/public-apis
public class MediaItem extends BaseModel { @PrimaryKey(autoincrement = true) long itemId; @Expose @Column String tracker_category; @Expose @Column String tracker_subcategory; @Expose @Column String tracker_problem_fixed; @Expose @Column String tracker_remarks; @Expose @Column String tracker_client_initial; public MediaItem() { } @Override public String toString() { return "UploadToAccount{" + "itemId=" + itemId + ",tracker_category='" + tracker_category + '\'' + ",tracker_subcategory='" + tracker_subcategory + '\'' + ",tracker_problem_fixed='" + tracker_problem_fixed + '\'' + ",tracker_remarks='" + tracker_remarks + '\'' + ",tracker_client_initial='" + tracker_client_initial + '\'' + '}'; } public long getItemId() { return itemId; } public void setItemId(long itemId) { this.itemId = itemId; } public String getTracker_category() { return tracker_category; } public void setTracker_category(String tracker_category) { this.tracker_category = tracker_category; } public String getTracker_subcategory() { return tracker_subcategory; } public void setTracker_subcategory(String tracker_subcategory) { this.tracker_subcategory = tracker_subcategory; } public String getTracker_problem_fixed() { return tracker_problem_fixed; } public void setTracker_problem_fixed(String tracker_problem_fixed) { this.tracker_problem_fixed = tracker_problem_fixed; } public String getTracker_remarks() { return tracker_remarks; } public void setTracker_remarks(String tracker_remarks) { this.tracker_remarks = tracker_remarks; } public String getTracker_client_initial() { return tracker_client_initial; } public void setTracker_client_initial(String tracker_client_initial) { this.tracker_client_initial = tracker_client_initial; } }
// convert
ArrayList<MediaItem> arrayList = new Arraylist();// add some valueJsonArray myCustomArray = gson.toJsonTree(arrayList).getAsJsonArray();
// if require any field exclude
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();JsonArray myCustomArray = gson.toJsonTree(arrayList).getAsJsonArray();
def dbflow_version = "3.1.1"
dependencies {
apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
}
2) add to project gradel file
dependencies{
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'}3) in applicatin classpublic class AppController extends Application { @Override public void onCreate() { super.onCreate();// initialize dbflow database FlowManager.init(new FlowConfig.Builder(this).build()); } }4) example database class (MyDatabase.java)@Database(name = MyDatabase.NAME, version = MyDatabase.VERSION) public class MyDatabase { public static final String NAME = "MyDataBase"; public static final int VERSION = 1; }5) example table class (MediaItem.java)@Table(database = MyDatabase.class) public class MediaItem extends BaseModel { @PrimaryKey(autoincrement = true) long id; @Column String name; @Column String number; @Column String isActive; @Column String percentage; public MediaItem() { } @Override public String toString() { return "Numbers{" + "id=" + id + ",name='" + name + '\'' + ",number='" + number + '\'' + ",isActive='" + isActive + '\'' + ",percentage='" + percentage + '\'' + '}'; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getIsActive() { return isActive; } public void setIsActive(String isActive) { this.isActive = isActive; } public String getPercentage() { return percentage; } public void setPercentage(String percentage) { this.percentage = percentage; } }
String jsonstr = "replace your json str";
ArrayList<GallerySetter> items;
items = new Gson().fromJson(jsonstr, new TypeToken<ArrayList<GallerySetter>>() { }.getType());Convert ArrayList to Json StringArrayList<GallerySetter> exampleArrayList = = new ArrayList<>();String orderStr = new Gson().toJson(items, new TypeToken<ArrayList<GallerySetter>>() { }.getType());
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView deepLinkUrl = (TextView) findViewById(R.id.deep_link_url); Intent intent = getIntent(); Uri data = intent.getData(); if ((data != null) && (data.getQueryParameter("faqid") != null)) { Toast.makeText(this, data.getQueryParameter("faqid") + "", Toast.LENGTH_SHORT).show(); } else if ((data != null) && (data.getQueryParameter("sectionid") != null)) { Toast.makeText(this, data.getQueryParameter("sectionid") + "", Toast.LENGTH_SHORT).show(); } else { deepLinkUrl.setText("Deep link received - " + data); } if(data != null) { deepLinkUrl.setText("Deep link received :- faqid = " + data.getQueryParameter("faqid")+" sectionid = "+data.getQueryParameter("sectionid")); } } }
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.deeplink.MainActivity"> <TextView android:id="@+id/deep_link_url" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout>
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.example.com" android:pathPrefix="/gizmos" /> </intent-filter> </activity>
public class FontableTextView extends TextView { public FontableTextView(Context context) { super(context); } public FontableTextView(Context context, AttributeSet attrs) { super(context, attrs); UiUtil.setCustomFont(this, context, attrs, R.styleable.com_github_browep_customfonts_view_FontableTextView, R.styleable.com_github_browep_customfonts_view_FontableTextView_font); } public FontableTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); UiUtil.setCustomFont(this,context,attrs, R.styleable.com_github_browep_customfonts_view_FontableTextView, R.styleable.com_github_browep_customfonts_view_FontableTextView_font); } }
2) Create Attributre in res-> values-> attrs.xml
<?xml version="1.0" encoding="utf-8"?><resources>
<declare-styleable name="com.github.browep.customfonts.view.FontableTextView"> <attr name="font" /> </declare-styleable></resources>3) Add UiUtil.java classpublic class UiUtil { public static final String TAG = "UiUtil"; public static void setCustomFont(View textViewOrButton, Context ctx, AttributeSet attrs, int[] attributeSet, int fontId) { TypedArray a = ctx.obtainStyledAttributes(attrs, attributeSet); String customFont = a.getString(fontId); setCustomFont(textViewOrButton, ctx, customFont); a.recycle(); } private static boolean setCustomFont(View textViewOrButton, Context ctx, String asset) { if (TextUtils.isEmpty(asset)) return false; Typeface tf = null; try { tf = getFont(ctx, asset); if (textViewOrButton instanceof TextView) { ((TextView) textViewOrButton).setTypeface(tf); } else if (textViewOrButton instanceof EditText) { ((EditText) textViewOrButton).setTypeface(tf); } else { ((Button) textViewOrButton).setTypeface(tf); } } catch (Exception e) { Log.e(TAG, "Could not get typeface: " + asset, e); return false; } return true; } private static final Hashtable<String, SoftReference<Typeface>> fontCache = new Hashtable<String, SoftReference<Typeface>>(); public static Typeface getFont(Context c, String name) { synchronized (fontCache) { if (fontCache.get(name) != null) { SoftReference<Typeface> ref = fontCache.get(name); if (ref.get() != null) { return ref.get(); } } Typeface typeface = Typeface.createFromAsset( c.getAssets(), "fonts/" + name ); fontCache.put(name, new SoftReference<Typeface>(typeface)); return typeface; } } }
4) Now How to use in XML Layout file
- Add this line to your XML root element (e.g LiniarLayout, RelativeLayout)
xmlns:app="http://schemas.android.com/apk/res-auto"
- copy your font to assests-> fonts Directory (e.g HelveticaNeueLight.ttf is in my fonts folder in assests)
<your.package.name.FontableTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="This is Fontable TextView" app:font="HelveticaNeueLight.ttf" />
By Sohel Shaikh
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
private GoogleApiClient googleApiClient;
//check that location enables or not if not open dialog
public void getLocation() { final LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { //what you want to do locationenable(); } else { } }public void locationenable() { googleApiClient = new GoogleApiClient.Builder(context) .addApi(LocationServices.API) .build(); googleApiClient.connect(); LocationRequest locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(30 * 1000); locationRequest.setFastestInterval(5 * 1000); LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest); //************************** builder.setAlwaysShow(true); //this is the key ingredient //************************** PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build()); result.setResultCallback(new ResultCallback<LocationSettingsResult>() { @Override public void onResult(LocationSettingsResult result) { final Status status = result.getStatus(); final LocationSettingsStates state = result.getLocationSettingsStates(); switch (status.getStatusCode()) { case LocationSettingsStatusCodes.SUCCESS: // All location settings are satisfied. The client can initialize location // requests here. break; case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: // Location settings are not satisfied. But could be fixed by showing the user // a dialog. try { // Show the dialog by calling startResolutionForResult(), // and check the result in onActivityResult(). status.startResolutionForResult( (Activity) context, 1000); } catch (IntentSender.SendIntentException e) { // Ignore the error. } break; case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: // Location settings are not satisfied. However, we have no way to fix the // settings so we won't show the dialog. break; case LocationSettingsStatusCodes.CANCELED: // Location settings are not satisfied. However, we have no way to fix the // settings so we won't show the dialog. break; } } }); } @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1000) { getLocation(); }else{} }//above code is for enable location on dialog click and call getlocation() method in onresume if latitude or latitude not found//now providing the location manager class through u can get all the location related stuff.// Gps Tracker class is providing all the location listner properties for getting lattitude ,longitude ,address on lat-lng etc.import android.Manifest; import android.app.Service; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.location.Address; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.IBinder; import android.provider.Settings; import android.support.v4.app.ActivityCompat; import android.util.Log; import java.io.IOException; import java.util.List; import java.util.Locale; public class GPSTracker extends Service implements LocationListener { private final Context mContext; // flag for GPS status public boolean isGPSEnabled = false; // flag for network status public boolean isNetworkEnabled = false; // flag for GPS status boolean canGetLocation = false; Location location; // location double latitude; // latitude double longitude; // longitude // The minimum distance to change Updates in meters private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters // The minimum time between updates in milliseconds private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute // Declaring a Location Manager protected LocationManager locationManager; SharedPreferences prefs; public GPSTracker(Context context) { this.mContext = context; getLocation(); } public Location getLocation() { try { locationManager = (LocationManager) mContext .getSystemService(LOCATION_SERVICE); // getting GPS status isGPSEnabled = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); // getting network status isNetworkEnabled = locationManager .isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (!isGPSEnabled && !isNetworkEnabled) { // no network provider is enabled } else { this.canGetLocation = true; // First get location from Network Provider if (isNetworkEnabled) { if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return location; } locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("Network", "Network"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } } } // if GPS Enabled get lat/long using GPS Services if (isGPSEnabled) { if (location == null) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("GPS Enabled", "GPS Enabled"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } } } } } } catch (Exception e) { e.printStackTrace(); } return location; } /** * Get list of address by latitude and longitude * * @return null or List<Address> */ public List<Address> getGeocoderAddress(Context context) { if (location != null) { Geocoder geocoder = new Geocoder(context, Locale.ENGLISH); try { List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1); return addresses; } catch (IOException e) { // e.printStackTrace(); Log.e("Error : Geocoder", "Impossible to connect to Geocoder", e); } } return null; } /** * Try to get AddressLine * * @return null or addressLine */ public String getAddressLine(Context context) { List<Address> addresses = getGeocoderAddress(context); String result = ""; if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); StringBuilder sb = new StringBuilder(); for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { sb.append(address.getAddressLine(i)).append("\n"); } sb.append(address.getLocality()).append("\n"); sb.append(address.getCountryName()); result = sb.toString(); return result; } else { return null; } } /** * Try to get Locality * * @return null or locality */ public String getLocality(Context context) { List<Address> addresses = getGeocoderAddress(context); if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); String locality = address.getLocality(); return locality; } else { return null; } } /** * Try to get Postal Code * * @return null or postalCode */ public String getPostalCode(Context context) { List<Address> addresses = getGeocoderAddress(context); if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); String postalCode = address.getPostalCode(); return postalCode; } else { return null; } } /** * Try to get CountryName * * @return null or postalCode */ public String getCountryName(Context context) { List<Address> addresses = getGeocoderAddress(context); if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); String countryName = address.getCountryName(); return countryName; } else { return null; } } /** * Stop using GPS listener Calling this function will stop using GPS in your app */ public void stopUsingGPS() { if (locationManager != null) { if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } locationManager.removeUpdates(GPSTracker.this); } } /** * Function to get latitude */ public double getLatitude() { if (location != null) { latitude = location.getLatitude(); } // return latitude return latitude; } /** * Function to get longitude */ public double getLongitude() { if (location != null) { longitude = location.getLongitude(); } // return longitude return longitude; } /** * Function to check GPS/wifi enabled * * @return boolean */ public boolean canGetLocation() { return this.canGetLocation; } /** * Function to show settings alert dialog On pressing Settings button will lauch Settings Options */ public void showSettingsAlert() { android.support.v7.app.AlertDialog.Builder alertDialog = new android.support.v7.app.AlertDialog.Builder(mContext); // Setting Dialog Title alertDialog.setTitle("GPS settings"); // Setting Dialog Message alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?"); // On pressing Settings button alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); mContext.startActivity(intent); } }); // on pressing cancel button alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); // Showing Alert Message alertDialog.show(); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } }//full and final code for location enable and get latitude longitude for just intializing the Gps tracker class and u can do all the location related stuff.
By Darshan Patel
Open Teminal/cmd --------------- Below steps is for Android 10 or lower Step 1 - Connect the device via USB and make sure debugging is work...