package com.creativetrends.app.simplicity.activities; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.AppCompatTextView; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import com.creativetrends.app.simplicity.ui.Cardbar; import com.creativetrends.app.simplicity.utils.PrefManager; import com.creativetrends.simplicity.app.R; import com.google.android.material.button.MaterialButton; import java.io.File; import java.util.Calendar; public class WelcomeActivity extends AppCompatActivity implements View.OnClickListener { private PrefManager prefManager; private static final int REQUEST_STORAGE = 300; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); prefManager = new PrefManager(this); MaterialButton appCompatButton = findViewById(R.id.wel_button); AppCompatTextView termsTextView = findViewById(R.id.wel_term); AppCompatTextView policyTextView = findViewById(R.id.wel_pri); appCompatButton.setOnClickListener(this); termsTextView.setOnClickListener(this); policyTextView.setOnClickListener(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.white)); }else{ getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.black)); } getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.black)); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.wel_button: if(!hasStoragePermission(this)){ requestStoragePermission(this); }else{ launchHomeScreen(); } break; case R.id.wel_term: showTerms(); break; case R.id.wel_pri: showPolicy(); break; } } @Override protected void onResume() { if (!prefManager.isFirstTimeLaunch()) { launchHomeScreen(); } super.onResume(); } @Override protected void onPause() { super.onPause(); } @Override protected void onStart() { super.onStart(); } @Override protected void onStop() { super.onStop(); } public static void requestStoragePermission(Activity activity) { String[] permissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}; if (!hasStoragePermission(activity)) { ActivityCompat.requestPermissions(activity, permissions, REQUEST_STORAGE); } } public static boolean hasStoragePermission(Activity activity) { String storagePermission = Manifest.permission.WRITE_EXTERNAL_STORAGE; int hasPermission = ContextCompat.checkSelfPermission(activity, storagePermission); return (hasPermission == PackageManager.PERMISSION_GRANTED); } private void launchHomeScreen() { startActivity(new Intent(WelcomeActivity.this, WelcomeActivitySign.class)); finish(); if(hasStoragePermission(this)) { File imageStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), getResources().getString(R.string.app_name ) + File.separator + "Simplicity Downloads"); if (!imageStorageDir.exists()) { //noinspection ResultOfMethodCallIgnored imageStorageDir.mkdirs(); Log.i("created dir", imageStorageDir.getPath()); }else{ Log.i("", ""); } } } private void showTerms(){ Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); AlertDialog.Builder terms = new AlertDialog.Builder(this); terms.setTitle(getResources().getString(R.string.terms)); terms.setMessage(getResources().getString(R.string.eula_string, year)); terms.setPositiveButton(R.string.ok, (arg0, arg1) -> { }); terms.show(); } private void showPolicy(){ AlertDialog.Builder policy = new AlertDialog.Builder(this); policy.setTitle(getResources().getString(R.string.privacy_policy)); policy.setMessage(getResources().getString(R.string.policy_about)); policy.setPositiveButton(R.string.ok, (arg0, arg1) -> { }); policy.show(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == REQUEST_STORAGE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { launchHomeScreen(); } else { Cardbar.snackBar(getApplicationContext(), "Permission denied.", true).show(); Cardbar.snackBar(getApplicationContext(), "You will be prompted for permission again, before downloading content.", true).show(); launchHomeScreen(); } } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }