WelcomeActivity.java 6.13 KB
package com.dinhcv.lifelogpedometer.activity;

import android.Manifest;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.widget.Toast;

import com.dinhcv.lifelogpedometer.R;
import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener;
import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting;
import com.dinhcv.lifelogpedometer.portal.ApiServices;
import com.dinhcv.lifelogpedometer.portal.LLAPIManager;
import com.dinhcv.lifelogpedometer.utils.Debug;

import org.json.JSONArray;
import org.json.JSONObject;


public class WelcomeActivity extends ActivityBase implements Runnable {
    private boolean isRefresh = false;
    private static final int PERMISSIONS_REQUEST = 999;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        checkPermission();
    }

    private void checkRefreshToken(){
        int id = Setting.getUserIdSharepre(WelcomeActivity.this);
        Debug.normal("String id: "+ id);
        if (id != 0){
            handleRefreshToken(id);
        }else {
            refeshDone();
        }
    }


    private void handleRefreshToken(int id) {

        ApiServices.refreshToken(WelcomeActivity.this, id, new LLAPIManagerListener() {
            @Override
            public void onError(Error error) {
                Debug.error("Version JSON result: ERROR " + error);
                String err = getResources().getString(R.string.login_error);
                isRefresh = false;
                refeshDone();
            }

            @Override
            public void onSuccess(String json) {
                Debug.warn("Version JSON result: " + json.toString());
                isRefresh = true;
                refeshDone();
            }

            @Override
            public void onSuccess(JSONObject object) {
                Debug.warn("Version JSON object result: Success");
                isRefresh = true;
                refeshDone();
            }
        });
    }

    private void refeshDone(){
        Handler handler = new Handler();
        handler.postDelayed(WelcomeActivity.this, 2000);
    }

    private void notifyErr(String err){
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(WelcomeActivity.this);
        alertDialog.setMessage(err);
        alertDialog.setCancelable(false);
        alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
            }
        });
        AlertDialog alert = alertDialog.create();
        alert.show();
    }

    @Override
    public void run() {
        // go to main screen
        if ( isRefresh) {
            gotoActivity(PedometerActivity.class);
        } else {
//            Bundle bundle = new Bundle();
//            bundle.putString(Const.URL, url);
            gotoActivity(LoginActivity.class);
        }
        finish();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    private void checkPermission() {
        // Check all permission in android 6.0
        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if ((ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
                    == PackageManager.PERMISSION_GRANTED) && (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                    == PackageManager.PERMISSION_GRANTED)&& (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    == PackageManager.PERMISSION_GRANTED)) {
                checkRefreshToken();

            } else {
                // Requset permisson of device
                if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission
                        .ACCESS_COARSE_LOCATION)
                        && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest
                        .permission.ACCESS_FINE_LOCATION) && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest
                        .permission.ACCESS_FINE_LOCATION)) {
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
                                    Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE},
                            PERMISSIONS_REQUEST);

                } else {
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
                                    Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE},
                            PERMISSIONS_REQUEST);
                }
            }

        } else {
            checkRefreshToken();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[]
            grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        if (requestCode == PERMISSIONS_REQUEST) {
            if (grantResults.length > 0) {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED
                        && grantResults[1] == PackageManager.PERMISSION_GRANTED
                        && grantResults[2] == PackageManager.PERMISSION_GRANTED) {
                    checkRefreshToken();
                    return;
                }
            } else {
                Toast.makeText(this, "Permission was not granted ", Toast.LENGTH_SHORT).show();
                finish();
            }
        } else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}