Friday, December 25, 2020

get data in activity

 package com.gkmaza.gujarati;


import android.annotation.SuppressLint;

import android.content.Context;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.graphics.Color;

import android.net.Uri;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;


import com.getbase.floatingactionbutton.FloatingActionButton;

import com.google.android.gms.ads.AdRequest;

import com.google.android.gms.ads.AdView;

import com.google.android.gms.ads.InterstitialAd;

import com.google.android.gms.ads.MobileAds;

import com.google.android.gms.ads.initialization.InitializationStatus;

import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

import com.google.android.material.navigation.NavigationView;

import com.google.android.material.snackbar.Snackbar;

import com.google.gson.Gson;


import java.io.IOException;

import java.util.ArrayList;

import java.util.List;


import androidx.annotation.NonNull;

import androidx.appcompat.app.ActionBarDrawerToggle;

import androidx.appcompat.app.AppCompatActivity;

import androidx.appcompat.widget.SearchView;

import androidx.appcompat.widget.Toolbar;

import androidx.core.view.GravityCompat;

import androidx.drawerlayout.widget.DrawerLayout;

import androidx.navigation.ui.AppBarConfiguration;

import androidx.recyclerview.widget.GridLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import network.ApiClient;

import network.ApiInterface;

import network.RestError;

import network.connectionManager;

import network.contact;

import network.data;

import network.quoteShow;

import offlineconnection.UserContract;

import offlineconnection.UserDbHelper;

import retrofit2.Call;

import retrofit2.Callback;

import retrofit2.Response;


public class home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    RecyclerView recyclerView;

  recyclAdapter recyclAdapter;

    Context context=this;

    UserDbHelper userDbHelper;

    SQLiteDatabase sqLiteDatabase;

    Cursor cursor;

    FloatingActionButton add_quotes,view_quotes;

recyclAdapteroffline recyclAdapteroffline;

    SwipeRefreshLayout swipeRefreshLayout;

boolean flag;

    private List<contact> contacts;

    private ApiInterface apiInterface;

    DrawerLayout relativeLayout;

    boolean backtoexit=false;

    public List<model> modelList;

    AdView adView;

    private InterstitialAd interstitialAd;

    final LoaderDialog loaderDialog = new LoaderDialog();




    private AppBarConfiguration mAppBarConfiguration;




    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_home);


        Toolbar toolbar = findViewById(R.id.toolbar);

        setSupportActionBar(toolbar);

        MobileAds.initialize(this,"ca-app-pub-6020255471056041/9686541658");

        adView=findViewById(R.id.adView);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {

            @Override

            public void onInitializationComplete(InitializationStatus initializationStatus) {


            }

        });

        AdRequest adRequest=new AdRequest.Builder().build();

        adView.loadAd(adRequest);

       /* interstitialAd=new InterstitialAd(this);

        interstitialAd.setAdUnitId("ca-app-pub-6020255471056041/9494969962");

        interstitialAd.loadAd(new AdRequest.Builder().build());

        interstitialAd.setAdListener(new AdListener(){

            @Override

            public void onAdClosed(){

                Toast.makeText(home.this, "close", Toast.LENGTH_SHORT).show();

            }

        });


        if (interstitialAd.isLoaded()){

            interstitialAd.show();

        }

        else{

            Toast.makeText(this, "not show", Toast.LENGTH_SHORT).show();


        }

*/

        DrawerLayout drawer = findViewById(R.id.drawer_layout);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(

                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);

        drawer.addDrawerListener(toggle);

        toggle.syncState();

        NavigationView navigationView = findViewById(R.id.nav_view);

        navigationView.setNavigationItemSelectedListener((NavigationView.OnNavigationItemSelectedListener) context);

        mAppBarConfiguration = new AppBarConfiguration.Builder(

                R.id.nav_home, R.id.nav_all_qoutes, R.id.nav_favorite,

                R.id.nav_rate_app, R.id.nav_share, R.id.nav_feedback)

                .setDrawerLayout(drawer)

                .build();

            swipeRefreshLayout=findViewById(R.id.swipelayout);

        recyclerView=findViewById(R.id.recycl);

        relativeLayout=findViewById(R.id.drawer_layout);

        //int rid=R.anim.layout_animation_right_to_left;

        //LayoutAnimationController animationController= AnimationUtils.loadLayoutAnimation(this,rid);


        recyclerView.setHasFixedSize(true);

add_quotes=findViewById(R.id.action_add);

view_quotes=findViewById(R.id.action_view);

view_quotes.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        Intent intent=new Intent(context,viewmyquotes.class);

        startActivity(intent);

        Toast.makeText(context, "View Quotes", Toast.LENGTH_SHORT).show();

    }

});


add_quotes.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {


        Toast.makeText(context, "Add Quotes", Toast.LENGTH_SHORT).show();

        Intent intent=new Intent(context,add_quotes.class);

        startActivity(intent);

    }

});


        recyclerView.setLayoutManager(new GridLayoutManager(this,2));

        if(connectionManager.checkconnection(getBaseContext())){

            flag=true;

            get_All();

            getonline();

        }else{

           getoffline();

            flag=false;

        }

        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

            @Override

            public void onRefresh() {

                if(connectionManager.checkconnection(getBaseContext())){

                    flag=true;

                    get_msg_u();

                    get_All();

                    getonline();

                }else{

                    get_msg();

                    flag=false;

                    getoffline();

                    swipeRefreshLayout.setRefreshing(false);

                }

            }

        });



    }


    @SuppressLint("ResourceAsColor")

    private void get_msg() {

        Snackbar snackbar = Snackbar

                .make(relativeLayout, "No Internet Connection!", Snackbar.LENGTH_LONG)

                .setAction("RETRY", new View.OnClickListener() {

                    @Override

                    public void onClick(View view) {

                        if(connectionManager.checkconnection(getBaseContext())){

                            Intent intent=new Intent(getApplicationContext(),home.class);

                            startActivity(intent);

                            finish();

                        }

                        else{

                            Toast.makeText(getApplicationContext(), "Check Your Connection", Toast.LENGTH_SHORT).show();

                        }

                    }

                });

        View snackBarView = snackbar.getView();

        snackBarView.setBackgroundColor(Color.parseColor("#FF4081"));

        snackbar.setActionTextColor(Color.YELLOW);

        View sbView = snackbar.getView();

        TextView textView = (TextView) sbView.findViewById(R.id.snackbar_text);

        textView.setTextColor(Color.WHITE);

        snackbar.show();

    }

    private void get_All() {

        apiInterface= ApiClient.getClient().create(ApiInterface.class);

        Call<quoteShow> call = apiInterface.get_all_quote();

        call.enqueue(new Callback<quoteShow>() {

            @Override

            public void onResponse(Call<quoteShow> call, Response<quoteShow> response) {


                if (response.isSuccessful()) {

                   userDbHelper = new UserDbHelper(getApplicationContext());


                    sqLiteDatabase = userDbHelper.getReadableDatabase();

                    sqLiteDatabase.delete(UserContract.NewUserInfo.TABLE_NAME_Q,null,null);

                    for (int i=0;i<response.body().getRecords().size();i++){


                        String name = response.body().getRecords().get(i).getQuotesName();

                        String id = response.body().getRecords().get(i).getId();

                        String aname = response.body().getRecords().get(i).getAuthorName();

                        String status = response.body().getRecords().get(i).getStatus();

                        String cid = response.body().getRecords().get(i).getCategoryId();

                        String cname = response.body().getRecords().get(i).getCategoryName();


                        userDbHelper.addinformations_quotes(id, name, aname,status,cid,cname, sqLiteDatabase);

                        //Toast.makeText(getBaseContext(), "save", Toast.LENGTH_LONG).show();


                    } userDbHelper.close();

                    // recyclerView.setAdapter(recyclAdapter2);

                } else {

                    RestError errorResponse;

                    Gson gson = new Gson();

                    try {

                        errorResponse = gson.fromJson(response.errorBody().string(), RestError.class);

                        errorResponse.setError(true);

                        Toast.makeText(context, errorResponse.getMessage(), Toast.LENGTH_SHORT).show();

                        Log.e("Error", errorResponse.getMessage());

                    } catch (IOException e) {

                        e.printStackTrace();

                    }

                }


            }


            @Override

            public void onFailure(Call<quoteShow> call, Throwable t) {

                //loaderDialog.hideDialog();

                t.getCause();


            }

        }); }

    private void getoffline() {


        userDbHelper =new UserDbHelper(getApplicationContext());

        sqLiteDatabase = userDbHelper.getReadableDatabase();

        List<data> data = new ArrayList<>();

        String[] projeaction={UserContract.NewUserInfo.C_ID,UserContract.NewUserInfo.C_NAME,UserContract.NewUserInfo.C_DESC};

        cursor= sqLiteDatabase.query(UserContract.NewUserInfo.TABLE_NAME,projeaction,null,null,null,null,null);


        if(cursor.moveToFirst()){

            do{

                String id,name,desc;

                id=cursor.getString(0);

                name=cursor.getString(1);

                desc=cursor.getString(2);

                data dataProvaider=new data(id,name,desc);

                data.add(dataProvaider);



            }while(cursor.moveToNext());


        }

        recyclAdapteroffline=new recyclAdapteroffline(this,data);

        recyclerView.setAdapter(recyclAdapteroffline);


    }


    @SuppressLint("ResourceAsColor")

    private void get_msg_u() {

        Snackbar snackbar = Snackbar

                .make(relativeLayout, "Upto Date..!", Snackbar.LENGTH_LONG)

                .setAction("ok", new View.OnClickListener() {

                    @Override

                    public void onClick(View view) {

                        if(connectionManager.checkconnection(getBaseContext())){


                        }

                        else{

                            Toast.makeText(getApplicationContext(), "Check Your Connection !!", Toast.LENGTH_SHORT).show();

                        }

                    }

                });

        View snackBarView = snackbar.getView();

        snackBarView.setBackgroundColor(Color.parseColor("#00bfa5"));

        snackbar.setActionTextColor(Color.CYAN);

        View sbView = snackbar.getView();

        TextView textView = (TextView) sbView.findViewById(R.id.snackbar_text);

        textView.setTextColor(Color.WHITE);

        snackbar.show();

    }

    private void getonline() {

        loaderDialog.showDialog(context);

        apiInterface= ApiClient.getClient().create(ApiInterface.class);

        Call<contact> call=apiInterface.getdata();

        call.enqueue(new Callback<contact>() {

            @Override

            public void onResponse(Call<contact> call, Response<contact> response) {


                loaderDialog.hideDialog();

                if (response.isSuccessful()) {

                    recyclAdapter=new recyclAdapter(context,response.body());


                    userDbHelper = new UserDbHelper(getApplicationContext());

                    sqLiteDatabase = userDbHelper.getReadableDatabase();

                    sqLiteDatabase.delete(UserContract.NewUserInfo.TABLE_NAME,null,null);

                    for (int i=0;i<response.body().getRecords().size();i++){

                        String name = response.body().getRecords().get(i).getName();

                        String id = response.body().getRecords().get(i).getId();

                        String desc = response.body().getRecords().get(i).getDescription();


                        userDbHelper.addinformations(id, name, desc, sqLiteDatabase);

                        //Toast.makeText(getBaseContext(), "save", Toast.LENGTH_LONG).show();


                    } userDbHelper.close();

                    recyclerView.setAdapter(recyclAdapter);

                    recyclAdapter.notifyDataSetChanged();

                    swipeRefreshLayout.setRefreshing(false);

                }

                else{

                    RestError errorResponse;

                    Gson gson = new Gson();

                    try {

                        errorResponse = gson.fromJson(response.errorBody().string(), RestError.class);

                        errorResponse.setError(true);

                        Toast.makeText(context, errorResponse.getMessage(), Toast.LENGTH_SHORT).show();

                        Log.e("Error", errorResponse.getMessage());

                    } catch (IOException e) {

                        e.printStackTrace();

                    }

                }


            }


            @Override

            public void onFailure(Call<contact> call, Throwable t) {

                loaderDialog.hideDialog();

                t.getCause();


            }

        });

    }



    @Override

    public void onBackPressed() {

        if(backtoexit)

        {super.onBackPressed();

            return;

        }


        this.backtoexit=true;

        Toast.makeText(this,"Click Back again to Exit",Toast.LENGTH_LONG).show();

        new Handler().postDelayed(new Runnable() {

            @Override

            public void run() {


                backtoexit=false;

            }

        },2000);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main_menu,menu);

        final MenuItem menuItem=menu.findItem(R.id.action_search);

        final SearchView searchView= (SearchView) menuItem.getActionView();


        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override

            public boolean onQueryTextSubmit(String s) {


                return false;

            }


            @Override

            public boolean onQueryTextChange(String s) {

              if(flag==true){recyclAdapter.getFilter().filter(s);}

              else if(flag==false){

                  recyclAdapteroffline.getFilter().filter(s);

              }

                return false;

            }

        });


        return super.onCreateOptionsMenu(menu);

    }



private  List<contact.Record> filterr(List<contact.Record> p1 , String query){

            query=query.toLowerCase();

            final List<contact.Record> filtermodellist=new ArrayList<>();

            for(contact.Record item:p1){

                final  String text=item.getName().toLowerCase();

                if(text.startsWith(query)){

                    filtermodellist.add(item);

                }


            }


return  filtermodellist;

}



    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        int i=item.getItemId();

        switch (i){

            case R.id.item_1:

                Intent intent=new Intent(context,about.class);

                startActivity(intent);

                this.finish();

                return true;

            default:

                return  super.onOptionsItemSelected(item);





        }



    }



    @Override

    public boolean onSupportNavigateUp()

    {

      return true;

    }


    @Override

    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

        int id = menuItem.getItemId();


        if (id == R.id.nav_home) {

           Intent intent=new Intent(context,home.class);

            startActivity(intent);


        } else if (id == R.id.nav_all_qoutes) {

            Intent intent=new Intent(context,recycle2.class);

            intent.putExtra("idname",0+"");

            intent.putExtra("fave",0+"");

            startActivity(intent);


        } else if (id == R.id.nav_favorite) {

            Intent intent=new Intent(context,recycle2.class);

            intent.putExtra("idname",0+"");

            intent.putExtra("fave",5+"");

            startActivity(intent);

        }else if (id == R.id.nav_rate_app) {


            Intent i = new Intent(android.content.Intent.ACTION_VIEW);

            i.setData(Uri.parse("http://play.google.com/store/apps/details?id=com.gkmaza.gujarati"));

            startActivity(i);

           /* Intent shareIntent =   new Intent(android.content.Intent.ACTION_SEND);

            shareIntent.setType("text/plain");

            shareIntent.putExtra(Intent.EXTRA_SUBJECT,"Rate App");

 String app_url =Shared.link;

            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,app_url);

            startActivity(Intent.createChooser(shareIntent, "Gujarati Quotes"));

*/

        }else if (id == R.id.nav_share) {

            Intent shareIntent =   new Intent(android.content.Intent.ACTION_SEND);

            shareIntent.setType("text/plain");

            shareIntent.putExtra(Intent.EXTRA_SUBJECT,"Gujarati Suvichar/Quotes");

            String app_url = Shared.shareapp+Shared.link;

            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,app_url);

            startActivity(Intent.createChooser(shareIntent, "Gujarati Quotes"));


        }else if (id == R.id.nav_feedback) {

            //Toast.makeText(context, "Feedback Comming Soon..!!", Toast.LENGTH_SHORT).show();

Intent intent=new Intent(home.this,feedback.class);

startActivity(intent);

finish();

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        drawer.closeDrawer(GravityCompat.START);

        return true;


}





}


add dependacy

 


    implementation 'com.google.code.gson:gson:2.8.5'

    implementation 'com.squareup.retrofit2:retrofit:2.5.0'

    implementation 'com.google.android.gms:play-services-ads:18.3.0'

    implementation 'com.squareup.retrofit2:converter-gson:2.5.0'

    implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'

    implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'

    implementation 'com.squareup.okhttp3:okhttp:3.12.0'

    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'


    implementation 'com.squareup.okhttp3:logging-interceptor:3.3.1'

add RestError.java

 package network;


import com.google.gson.annotations.Expose;

import com.google.gson.annotations.SerializedName;


public class RestError

{

    private boolean error;


    @SerializedName("status")

    @Expose

    private Integer status;

    @SerializedName("message")

    @Expose

    private String message;


    public RestError(String message) {

        this.message = message;

    }


    public boolean isError() {

        return error;

    }


    public void setError(boolean error) {

        this.error = error;

    }


    public String getMessage() {

        return message;

    }


    public void setMessage(String message) {

        this.message = message;

    }


}


add interface ApiInterface

 package network;


import retrofit2.Call;

import retrofit2.http.Body;

import retrofit2.http.Headers;

import retrofit2.http.POST;

import retrofit2.http.Query;


public interface ApiInterface

{

    String GET_CAT="readc.php";


   @Headers({"Content-Type: application/json","Accept: application/json"})

    @POST(GET_CAT)

    Call<contact> getdata();



}


Add StringConverter.java

 package network;



import androidx.annotation.NonNull;


import java.io.IOException;

import java.lang.annotation.Annotation;

import java.lang.reflect.Type;


import okhttp3.MediaType;

import okhttp3.RequestBody;

import okhttp3.ResponseBody;

import retrofit2.Converter;

import retrofit2.Retrofit;


class StringConverter extends Converter.Factory

{

    private static final MediaType MEDIA_TYPE = MediaType.parse("text/plain");

    @Override

    public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {

        if (String.class.equals(type)) {

            return new Converter<ResponseBody, String>() {

                @Override

                public String convert(@NonNull ResponseBody value) throws IOException {

                    return value.string();

                }

            };

        }

        return null;

    }


    @Override

    public Converter<?, RequestBody> requestBodyConverter(Type type, Annotation[] parameterAnnotations,

                                                          Annotation[] methodAnnotations, Retrofit retrofit) {


        if (String.class.equals(type)) {

            return new Converter<String, RequestBody>() {

                @Override

                public RequestBody convert(@NonNull String value) throws IOException {

                    return RequestBody.create(MEDIA_TYPE, value);

                }

            };

        }

        return null;

    }


}


Add TLSSocketFactory.java

 package network;


import java.io.IOException;

import java.net.InetAddress;

import java.net.Socket;

import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;


import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSocket;

import javax.net.ssl.SSLSocketFactory;


class TLSSocketFactory extends SSLSocketFactory

{

    private SSLSocketFactory delegate;


    public TLSSocketFactory() throws KeyManagementException, NoSuchAlgorithmException {

        SSLContext context = SSLContext.getInstance("TLS");

        context.init(null, null, null);

        delegate = context.getSocketFactory();

    }


    @Override

    public String[] getDefaultCipherSuites() {

        return delegate.getDefaultCipherSuites();

    }


    @Override

    public String[] getSupportedCipherSuites() {

        return delegate.getSupportedCipherSuites();

    }


    @Override

    public Socket createSocket() throws IOException {

        return enableTLSOnSocket(delegate.createSocket());

    }


    @Override

    public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException {

        return enableTLSOnSocket(delegate.createSocket(s, host, port, autoClose));

    }


    @Override

    public Socket createSocket(String host, int port) throws IOException {

        return enableTLSOnSocket(delegate.createSocket(host, port));

    }


    @Override

    public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException {

        return enableTLSOnSocket(delegate.createSocket(host, port, localHost, localPort));

    }


    @Override

    public Socket createSocket(InetAddress host, int port) throws IOException {

        return enableTLSOnSocket(delegate.createSocket(host, port));

    }


    @Override

    public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {

        return enableTLSOnSocket(delegate.createSocket(address, port, localAddress, localPort));

    }


    private Socket enableTLSOnSocket(Socket socket) {

        if (socket != null && (socket instanceof SSLSocket)) {

            ((SSLSocket) socket).setEnabledProtocols(new String[]{"TLSv1.1", "TLSv1.2"});

        }

        return socket;

    }


}


get data from Api Using Retrofit2 ApiClient.java

package network;


import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

import java.util.concurrent.TimeUnit;


import okhttp3.OkHttpClient;

import okhttp3.logging.HttpLoggingInterceptor;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

import retrofit2.converter.scalars.ScalarsConverterFactory;



public class ApiClient

{

    private static final String BASE_URL="http://www.gkmaza.com/apps/gujarati_suvichar/";

    private static Retrofit retrofit=null;

    private static OkHttpClient client;

    public static Retrofit getClient()

    {

        if(retrofit==null)

        {

            HttpLoggingInterceptor interceptor=new HttpLoggingInterceptor();

            interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

            try

            {

                client = new OkHttpClient.Builder()

                        .followRedirects(true)

                        .followSslRedirects(true)

                        .sslSocketFactory(new TLSSocketFactory())

                        .retryOnConnectionFailure(true)

                        .addInterceptor(interceptor)

                        .connectTimeout(30, TimeUnit.MINUTES)

                        .readTimeout(30, TimeUnit.MINUTES)

                        .addInterceptor(interceptor)

                        .build();


            }catch (KeyManagementException e)

            {

                e.printStackTrace();

            }catch (NoSuchAlgorithmException e)

            {

                e.printStackTrace();

            }

            retrofit=new Retrofit.Builder()

                    .baseUrl(BASE_URL)

                    .client(client)

                    .addConverterFactory(new StringConverter())

                    .addConverterFactory(ScalarsConverterFactory.create())

                    .addConverterFactory(GsonConverterFactory.create())

                    .build();


        }


        return retrofit;

    }

}

 

Thursday, November 19, 2020

PREMIUM Quotes App With Android Studio And Admob Ads

 


Quotes App Is An Android Application.Quotes App Has User-Friendly Interface With Easy To Manage. The Quote App Or Sayari App Are Stored In Firebase For Easy Editing And Better Performance.

Best Quotes App Is An Android Application. Quotes App Has User-Friendly Interface With Easy To Manage. The Quotes App Are Stored In Firebase For Easy Editing And Better Performance. Sayari App In Android Studio With Admob Ads And Firebase Realtime Database.



Premium Quotes APP

Only Rs. 499/-

Features


Android Side

  • Quotes With Category Wise
  • Latest Quotes
  • Copy or Share Quote with your friends and on Social Networks
  • Share Image with Quotes
  • Add to Favorite Mode
  • Latest UI with Material Design
  • Admob with Banner and Interstitial ads Integrated
  • App comply with GDPR
  • You can also change frequency on interstitial ad to show after number of click
  • Firebase Analytics
  • Easy Admin Panel – Firebase Backend
  • All Device Combability
  • Check Network Availability
  • MultiLanguage Supported (if your phone supports particular language)
  • Android Code Migrated to AndroidX
  • Android Studio Code (Recommended Android Studio Version – 3.3)


Admin Side

  1. Simple Admin Panel
  2. Easily Add Category
  3. Easily Add Quotes
  4. Quote of the day
  5. Edit and Delete Quotes, Author and Category
  6. Upload Unlimited Category and Quote
  7. Firebase Backend

What You Get:


  1. Full Android Source Code
  2. Full PHP Code of Server Side
  3. Document with Screen Shot
  • App Features
  • Amazing Swiping Cards View
  • Share As Screenshots With Branding
  • Swipe Right Save To Read Offline
  • Supports Video Embeds
  • Supports HTML tags & Links
  • Latest Admob Integrated
  • App Tour With How To Use App
  • Multi language Support
  • Post By Language And Categories
  • OneSignal Push Notifications
  • Easy To Make App In Minutes



Saturday, October 7, 2017

Facts About ISRO | Creating A World Record | Indian Space Research Organisation | gkmaza |

 Hey Guys, in this video I have told you some facts on ISRO. ISRO is well known for its economical and successful missions. ISRO (Indian Space Research Organization) is one of the top space organization which runs on a very little budget. But the work done and the success achieved by ISRO in limited resources is remarkable. In this video I tried to explain the basic main facts about ISRO but there is more about ISRO as it growing everyday with very new concept of technology which will be beneficial for INDIA and world. It is hard work of scientist at ISRO which led it to the this position in the world ranking. Also it received criticism for the launching of Mars Orbiter Mission, I always wonder why these critics space technology ignore the fact that how space technology has made huge difference in human lives. Just take a example of your Electronic chips in the phone,scratch resistance screen.and many more, if space technology wasn't there god knows when these things would have invented Hope you enjoy the video and if you enjoyed make sure to LIKE, SHARE And SUBSCRIBE !!!!!!

-know about genrel knowledge to visit www.gkmaza.com

Thursday, September 28, 2017

Which of the following cricket teams are not directly qualified for the ICC Cricket World Cup 2019?




     answer : West Indies

Explanation:
Recently Sri Lanka has qualified for the ICC Cricket World Cup 2019 after West Indies lost the first ODI against England at Old Trafford on September 19, 2017. With this, Sri Lanka has become the eighth and last team to qualify directly, joining Australia, Bangladesh, England, India, New Zealand, Pakistan and South Africa. Now, West Indies will progress to the 10-team ICC Cricket World Cup Qualifier 2018, where they will be joined by the bottom three sides on the ICC ODI team rankings – Afghanistan, Zimbabwe and Ireland as well as the top four sides from the ICC World Cricket League Championship and the top two sides from the ICC World Cricket League Division 2. The top two sides from the World Cup Qualifier will complete the 10-team line-up for the ICC Cricket World Cup 2019, which will be played in United Kingdom (UK) from 30 May to 15 July.

Tuesday, September 19, 2017

How to Download all e-paper any Language (कोई भी न्यूज़ पेपर किसी भी भा...



  • Learn how to download any news paper(e-paper) in PDF
  • You can download news paper in any language, any state and any city in the PDF.
  • You can also download any supplement that comes with the news paper.
  •  Read and download any book and magazine
    -Learn how to help with this video






Monday, September 18, 2017

17)WAP to enter any number and check it is armstrong No or not. in CPP



Program




#include

#include

class armstrong

{

int n,no,r,c;

public:

palindrom()

{ r=0;

}

void getdata()

{
cout<<"\n\t\t Enter Number:";

cin>>no;

}

void putdata()

{ c=no;

for( ;no>=1; )

{

n=no%10;

r=r+(n*n*n);

no=no/10;

}

if(c==r)

{

cout<<"\n\t\t A Number Is Armstrong !!";


}

else

{

cout<<"\n\t\t A Number Not Armstrong !!";

}

}

};

void main()

{

clrscr();

armstrong p1;

p1.getdata();

p1.putdata();

getch();

}


-------------------------------Output---------------------------



Enter Number:153

A Number Is Armstrong !!



Thursday, March 2, 2017

(20)Write a Program to display prime no between 1 to N number in CPP

#include<iostream.h>
#include<conio.h>
class primen
{
 int a,n,no,c,m;
 public:
  void insert();
  void display();
  };
  void primen::insert()
  {
   cout<<"\n\t\tEnter Number:";
   cin>>m;

  }
  void primen::display()
  {
  a=1;
   while(a<=m)
   {
    c=0;
    no=a;
    n=1;
    while(n<=no)
    {
     if(no%n==0)
     {

       c=c++;
      }
      n++;
    }
    if(c==2)
    {
     cout<<a;
    }
    a++;
    }

}

void main()
{
 clrscr();
 primen pp;
 pp.insert();
 pp.display();
 getch();
 }

(19) Wap to display Armstrong No between 1 To N Number in Cpp


#include<iostream.h>
#include<conio.h>
class armstrongn
{
       long int m;
       int a,n,r,c,no;
       public:
              void getdata();
              void putdata();
};
void armstrongn :: getdata()
{
       cout<<"\n\t\t Enter Number : ";
       cin>>m;
}
void armstrongn :: putdata()
{
       a=1;
       while(a<=m)
       {
              no=a;
              c=no;
              r=0;
              while(no>=1)
              {
                     n=no%10;
                     r=r+(n*n*n);
                     no=no/10;
              }
              if(c==r)
                     cout<<r<<"  ";
              a++;
       }
}
void main()
{
       clrscr();
       armstrongn r1;
       r1.getdata();
       r1.putdata();
       getch();
}
v  Output
Enter Number : 1000
1 153 370 371 407


(18)Write a programm to display palindrom No between 1 To N Number in CPP


v  Program

#include<iostream.h>
#include<conio.h>
class palindromn
{
       int a,n,m,r,c,no;
       public:
              void getdata();
              void putdata();
};
void palindromn :: getdata()
{
       cout<<"\n\t\t Enter Number : ";
       cin>>m;
}
void palindromn :: putdata()
{
       a=1;
       while(a<=m)
       {
              no=a;
              c=no;
              r=0;
              while(no>=1)
              {
                     n=no%10;
                     r=(r*10)+n;
                     no=no/10;
              }
              if(c==r)
                     cout<<r<<"  ";
              a++;
       }
}
void main()
{
       clrscr();
       palindromn r1;
       r1.getdata();
       r1.putdata();
       getch();
}
v  Output
Enter Number : 30
1 2 3 4 5 6 7 8 9 11 22